platform/upstream/llvm.git
2 years agoReland "[AST] Add a new TemplateKind for template decls found via a using decl.""
Haojian Wu [Tue, 12 Apr 2022 13:51:16 +0000 (15:51 +0200)]
Reland "[AST] Add a new TemplateKind for template decls found via a using decl.""

This is the template version of https://reviews.llvm.org/D114251.

This patch introduces a new template name kind (UsingTemplateName). The
UsingTemplateName stores the found using-shadow decl (and underlying
template can be retrieved from the using-shadow decl). With the new
template name, we can be able to find the using decl that a template
typeloc (e.g. TemplateSpecializationTypeLoc) found its underlying template,
which is useful for tooling use cases (include cleaner etc).

This patch merely focuses on adding the node to the AST.

Next steps:
- support using-decl in qualified template name;
- update the clangd and other tools to use this new node;
- add ast matchers for matching different kinds of template names;

Differential Revision: https://reviews.llvm.org/D123127

2 years ago[AMDGPU] Remove redundand RequiredAlignment assignment. NFCI.
Stanislav Mekhanoshin [Wed, 13 Apr 2022 18:17:10 +0000 (11:17 -0700)]
[AMDGPU] Remove redundand RequiredAlignment assignment. NFCI.

Differential Revision: https://reviews.llvm.org/D123699

2 years ago[flang] Fix DYLIB builds
Andrzej Warzynski [Thu, 14 Apr 2022 08:40:02 +0000 (08:40 +0000)]
[flang] Fix DYLIB builds

https://reviews.llvm.org/D123211 broke builds that set both
`LLVM_BUILD_LLVM_DYLIB` and `LLVM_LINK_LLVM_DYLIB` (see [1]). This patch
fixes that.

The build failure was caused by the fact that the LLVMPasses library,
which is an LLVM "component", was listed directly as link-time
dependency. Instead, one should use `LINK_COMPONENTS` in CMake files. I
made an identical mistake recently and then subsequently fixed it in
https://reviews.llvm.org/D121461 - please visit that revision for more
detail.

I'm merging this without a review. The change is straightforward, we
recently discussed it and I was able to confirm locally that it fixes
the build issue.

[1] https://lab.llvm.org/buildbot/#/builders/177/builds/4619

2 years ago[clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective()
Jan Svoboda [Mon, 11 Apr 2022 10:10:05 +0000 (12:10 +0200)]
[clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective()

This patch changes type of the `File` parameter in `PPCallbacks::InclusionDirective()` from `const FileEntry *` to `Optional<FileEntryRef>`.

With the API change in place, this patch then removes some uses of the deprecated `FileEntry::getName()` (e.g. in `DependencyGraph.cpp` and `ModuleDependencyCollector.cpp`).

Reviewed By: dexonsmith, bnbarham

Differential Revision: https://reviews.llvm.org/D123574

2 years ago[AMDGPU] Add a test for flat scratch SVS addressing
Jay Foad [Mon, 11 Apr 2022 15:11:43 +0000 (16:11 +0100)]
[AMDGPU] Add a test for flat scratch SVS addressing

2 years agoRevert "[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer"
Momchil Velikov [Thu, 14 Apr 2022 08:33:40 +0000 (09:33 +0100)]
Revert "[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer"

This reverts commit ecbf32dd88fc91b4fe709dc14bb3493dda6e8854.

It's possible this patch is the reason for an asertion failure
`!NodePtr->isKnownSentinel()` in `AArch64LoadStoreOpt::mergeUpdateInsn`
(https://lab.llvm.org/buildbot/#/builders/185/builds/1555) reverting while I
investigate.

2 years ago[RISCV] Remove sext_inreg+riscv_grev/riscv_gorc isel patterns
Lian Wang [Tue, 12 Apr 2022 03:42:29 +0000 (03:42 +0000)]
[RISCV] Remove sext_inreg+riscv_grev/riscv_gorc isel patterns

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D123565

2 years ago[RISCV][NFC] Refactor patterns for Multiply Add instructions
Lian Wang [Fri, 8 Apr 2022 09:28:21 +0000 (09:28 +0000)]
[RISCV][NFC] Refactor patterns for Multiply Add instructions

Reviewed By: craig.topper, frasercrmck

Differential Revision: https://reviews.llvm.org/D123355

2 years ago[MLIR] Fix missing return statement warning in PatternMatch.h
Uday Bondhugula [Thu, 14 Apr 2022 02:30:50 +0000 (08:00 +0530)]
[MLIR] Fix missing return statement warning in PatternMatch.h

Fix missing return statement warning in PatternMatch.h. NFC.

```
mlir/include/mlir/IR/PatternMatch.h:983:3: warning: no return statement in
function returning non-void [-Wreturn-type]
```

Differential Revision: https://reviews.llvm.org/D123756

2 years ago[AMDGPU][NFC] Organize code around reserving VGPR32 for AGPR copy.
hsmahesha [Thu, 14 Apr 2022 07:21:02 +0000 (12:51 +0530)]
[AMDGPU][NFC] Organize code around reserving VGPR32 for AGPR copy.

This is an NFC patch in preparation to fix a bug related to always
reserving VGPR32 for AGPR copy.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D123651

2 years ago[AMDGPU] Try to avoid inserting duplicate s_inst_prefetch
Carl Ritson [Thu, 14 Apr 2022 07:06:17 +0000 (16:06 +0900)]
[AMDGPU] Try to avoid inserting duplicate s_inst_prefetch

Check for existing s_inst_prefetch instructions when
configuring prefetches during loop alignment.

Reviewed By: rampitec, foad

Differential Revision: https://reviews.llvm.org/D123569

2 years ago[MLIR][GPU] Add canonicalization patterns for folding simple gpu.wait ops.
Arnab Dutta [Thu, 14 Apr 2022 06:00:07 +0000 (11:30 +0530)]
[MLIR][GPU] Add canonicalization patterns for folding simple gpu.wait ops.

* Fold away redundant %t = gpu.wait async + gpu.wait [%t] pairs.

* Fold away %t = gpu.wait async ... ops when %t has no uses.

* Fold away gpu.wait [] ops.

* In case of %t1 = gpu.wait async [%t0], replace all uses of %t1
  with %t0.

Differential Revision: https://reviews.llvm.org/D121878

2 years agoRevert "[sanitizer] Don't run malloc hooks for stacktraces"
Vitaly Buka [Thu, 14 Apr 2022 06:42:50 +0000 (23:42 -0700)]
Revert "[sanitizer] Don't run malloc hooks for stacktraces"

Msan crashes on clang-s390x-linux bot

This reverts commit d3531fc7f0053a7fe68317521ee6491da6e36733.

2 years ago[Driver] Sort Generic_GCC::IsIntegratedAssemblerDefault, NFC
Brad Smith [Thu, 14 Apr 2022 06:38:08 +0000 (02:38 -0400)]
[Driver] Sort Generic_GCC::IsIntegratedAssemblerDefault, NFC

2 years ago[Driver] Fix -fpascal-strings on Darwin
Fangrui Song [Thu, 14 Apr 2022 06:00:57 +0000 (23:00 -0700)]
[Driver] Fix -fpascal-strings on Darwin

2 years ago[gn build] Port 73da7eed8fac
LLVM GN Syncbot [Thu, 14 Apr 2022 05:36:21 +0000 (05:36 +0000)]
[gn build] Port 73da7eed8fac

2 years ago[clang-tidy] Add portability-std-allocator-const check
Fangrui Song [Thu, 14 Apr 2022 05:35:11 +0000 (22:35 -0700)]
[clang-tidy] Add portability-std-allocator-const check

Report use of ``std::vector<const T>`` (and similar containers of const
elements). These are now allowed in standard C++ due to undefined
``std::allocator<const T>``. They do not compile with libstdc++ or MSVC.
Future libc++ will remove the extension (D120996).
See docs/clang-tidy/checks/portability-std-allocator-const.rst for detail.

I have attempted clean-up in a large code base. Here are some statistics:

* 98% are related to the container `std::vector`, among `deque/forward_list/list/multiset/queue/set/stack/vector`.
* 24% are related to `std::vector<const std::string>`.
* Both `std::vector<const absl::string_view>` and `std::vector<const int>` contribute 2%. The other contributors spread over various class types.

The check can be useful to other large code bases and may serve as an example
for future libc++ strictness improvement.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D123655

2 years agoLowerSwitch: Avoid inserting NewDefault block
Ruiling Song [Tue, 12 Apr 2022 03:25:33 +0000 (11:25 +0800)]
LowerSwitch: Avoid inserting NewDefault block

The NewDefault was used to simplify the updating of PHI nodes, but it
causes some inefficiency for target that will run structurizer later. For
example, for a simple two-case switch, the extra NewDefault is causing
unstructured CFG like:

        O
       / \
      O   O
     / \ / \
    C1  ND C2
     \  |  /
      \ | /
        D

The change is to avoid the ND(NewDefault) block, that is we will get a
structured CFG for above example like:

        O
       / \
      /   \
     O     O
    / \   / \
   C1  \ /  C2
    \-> D <-/

The IR change introduced by this patch should be trivial to other targets,
so I am doing this unconditionally.

Fall-through among the cases will also cause unstructured CFG, but it need
more work and will be addressed in a separate change.

Reviewed by: arsenm

Differential Revision: https://reviews.llvm.org/D123607

2 years agotest: Don't depend on behavior of switch lower in one test. NFC
Ruiling Song [Tue, 12 Apr 2022 12:50:44 +0000 (20:50 +0800)]
test: Don't depend on behavior of switch lower in one test. NFC

This is a preliminary change to update the test so that it does not
depend on how switch-case will be lowered. The following change will
lower switch-case more optimally that will make the test no longer
valid.

Reviewed by: arsenm

Differential Revision: https://reviews.llvm.org/D123606

2 years ago[Driver] Simplify some hasFlag patterns with addOptInFlag/addOptOutFlag. NFC
Fangrui Song [Thu, 14 Apr 2022 05:00:44 +0000 (22:00 -0700)]
[Driver] Simplify some hasFlag patterns with addOptInFlag/addOptOutFlag. NFC

2 years ago[flang] Respect left tab limit with Tn editing after ADVANCE='NO'
Peter Klausler [Thu, 31 Mar 2022 23:46:02 +0000 (16:46 -0700)]
[flang] Respect left tab limit with Tn editing after ADVANCE='NO'

Correct the implementation of non-advancing I/O after some testing
to ensure that T tab edit descriptors are not allowed to back up
into positions of a record prior to where it stood at the beginning
of the I/O statement.

Differential Revision: https://reviews.llvm.org/D123709

2 years ago[mlir] Introduce ml_program dialect.
Stella Laurenzo [Thu, 14 Apr 2022 03:16:04 +0000 (20:16 -0700)]
[mlir] Introduce ml_program dialect.

Differential Revision: https://reviews.llvm.org/D120203

2 years agoRevert "[clang] Implement Change scope of lambda trailing-return-type"
Richard Smith [Thu, 14 Apr 2022 04:34:08 +0000 (21:34 -0700)]
Revert "[clang] Implement Change scope of lambda trailing-return-type"

This reverts commit c729d5be781a8e80137c11ab28aa14d9ace148db.

This change breaks thread safety annotations on lambdas.

2 years agoRISCV] Add clang builtins for CLZ instruction.
joker881 [Wed, 13 Apr 2022 12:38:36 +0000 (20:38 +0800)]
RISCV] Add clang builtins for CLZ instruction.

add intrinsic for CLZ

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D121915

2 years ago[Darwin][ASan][Sanitizer] Fixes Sanitizer NonUnique Identifier to Account for Mac...
Blue Gaston [Wed, 13 Apr 2022 20:17:05 +0000 (13:17 -0700)]
[Darwin][ASan][Sanitizer] Fixes Sanitizer NonUnique Identifier to Account for Mac arm64 architectures.

    Current check assumes iOS as the only Apple devices running arm64.
    ```#if SANITIZER_MAC && !(defined(__arm64__) && SANITIZER_IOS)```
    Stops Apple Silicon from being flagged as requiring unique RTTI.
    This introduced unexpected behavior within the sanitizer.

    rdar://91446703

Differential Revision: https://reviews.llvm.org/D123736

2 years ago[NFC] Generically resolve body in FunctionOpInterface verifyBody.
Stella Laurenzo [Thu, 14 Apr 2022 03:13:18 +0000 (20:13 -0700)]
[NFC] Generically resolve body in FunctionOpInterface verifyBody.

Since the actual implementation class can arbitrarily shadow parts of the FunctionOpInterface exported API, access the body generically instead of via the use of the interface being defined.

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

Differential Revision: https://reviews.llvm.org/D123757

2 years ago[Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault...
Brad Smith [Thu, 14 Apr 2022 03:53:25 +0000 (23:53 -0400)]
[Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D123438

2 years ago[cmake] Loosen multi-distribution restrictions
Shoaib Meenai [Thu, 14 Apr 2022 01:28:27 +0000 (18:28 -0700)]
[cmake] Loosen multi-distribution restrictions

We've found that there are cases where it's useful to be able to include
the same target in multiple distributions (e.g. if you want a
distribution that's a superset of another distribution, for convenience
purposes), and that there are cases where the distribution of a target
and its umbrella can legitimately differ (e.g. the LTO library would
commonly be distributed alongside your tools, but it also falls under
the llvm-libraries umbrella, which would commonly be distributed
separately). Relax the restrictions while providing an option to restore
them (which is mostly useful to ensure you aren't accidentally placing
targets in the wrong distributions).

There could be further refinements here (e.g. excluding a target from an
umbrella if it's explicitly included in some other distribution, or
having variables to control which targets are allowed to be duplicated
or placed in a separate distribution than their umbrellas), but we can
punt on those until there's an actual need.

2 years ago[MLIR][Presburger] change some `push_back`s to `emplace_back`s
Arjun P [Thu, 14 Apr 2022 02:20:17 +0000 (03:20 +0100)]
[MLIR][Presburger] change some `push_back`s to `emplace_back`s

2 years ago[MLIR][Presburger] change some post-increments/decrements to pre-increments/decrements
Arjun P [Thu, 14 Apr 2022 02:19:03 +0000 (03:19 +0100)]
[MLIR][Presburger] change some post-increments/decrements to pre-increments/decrements

2 years ago[RISCV][NFC] Use addExpr() instead of createExpr()
wangpc [Thu, 14 Apr 2022 02:47:08 +0000 (10:47 +0800)]
[RISCV][NFC] Use addExpr() instead of createExpr()

It seems to be neater.

Reviewed By: asb

Differential Revision: https://reviews.llvm.org/D123675

2 years ago[HWASan] symbolize: use buildid index for locals.
Florian Mayer [Tue, 12 Apr 2022 23:25:40 +0000 (16:25 -0700)]
[HWASan] symbolize: use buildid index for locals.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D123644

2 years ago[flang] Error handling for out-of-range CASE values
Peter Klausler [Thu, 31 Mar 2022 22:59:27 +0000 (15:59 -0700)]
[flang] Error handling for out-of-range CASE values

Catch and nicely describe errors in CASE range values
that are out of range for the type of the SELECT CASE.

Differential Revision: https://reviews.llvm.org/D123708

2 years ago[sanitizer] Disable malloc_hook_skip on Darwin
Vitaly Buka [Thu, 14 Apr 2022 01:33:27 +0000 (18:33 -0700)]
[sanitizer] Disable malloc_hook_skip on Darwin

Followup to D123566

2 years ago[gn build] (manually) port ab8abeaf48ab
Nico Weber [Thu, 14 Apr 2022 00:58:10 +0000 (20:58 -0400)]
[gn build] (manually) port ab8abeaf48ab

2 years ago[randstruct] Fix -Wunused-but-set-variable with Clang>=D122271 in -DLLVM_ENABLE_ASSER...
Fangrui Song [Thu, 14 Apr 2022 00:09:30 +0000 (17:09 -0700)]
[randstruct] Fix -Wunused-but-set-variable with Clang>=D122271 in -DLLVM_ENABLE_ASSERTIONS=off builds

2 years ago[flang] Fold IBITS() intrinsic function
Peter Klausler [Thu, 31 Mar 2022 20:36:09 +0000 (13:36 -0700)]
[flang] Fold IBITS() intrinsic function

Implement constant folding of IBITS(); add test.

Differential Revision: https://reviews.llvm.org/D123707

2 years ago[mlir] Fix a typo to load lsp-mode correctly.
Okwan Kwon [Wed, 13 Apr 2022 23:55:43 +0000 (23:55 +0000)]
[mlir] Fix a typo to load lsp-mode correctly.

Differential Revision: https://reviews.llvm.org/D123745

2 years ago[Driver] Change CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to affect driver default instea...
Fangrui Song [Wed, 13 Apr 2022 23:58:00 +0000 (16:58 -0700)]
[Driver] Change CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to affect driver default instead of cc1 default

The current cc1 CLANG_ENABLE_OPAQUE_POINTERS=on default difference is not ideal
in that people contribute %clang_cc1 tests may assume the default ON behavior,
which will cause failures on systems set to OFF.

cc1 option default dependent on CMake options should be used prudently
(generally avoided). We prefer to limit target differences to Driver.

Change the CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL mechanism introduced in D123122
to use a driver default instead. This is similar to the mechanism used for the
-flegacy-pass-manager transition to new PM transition.

Reviewed By: #opaque-pointers, rsmith, aeubanks

Differential Revision: https://reviews.llvm.org/D123744

2 years ago[sanitizer] Don't run malloc hooks for stacktraces
Vitaly Buka [Sat, 9 Apr 2022 02:53:41 +0000 (19:53 -0700)]
[sanitizer] Don't run malloc hooks for stacktraces

Usually when we generated stacktraces the process is in error state, so
running hooks may crash the process and prevent meaningfull error report.

Symbolizer, unwinder and pthread are potential source of mallocs.

https://b.corp.google.com/issues/228110771

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D123566

2 years ago[bazel] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to 1
Arthur Eubanks [Wed, 13 Apr 2022 23:31:03 +0000 (16:31 -0700)]
[bazel] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL to 1

Matches official cmake build.

2 years ago[gn build] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL=1
Arthur Eubanks [Wed, 13 Apr 2022 23:26:21 +0000 (16:26 -0700)]
[gn build] Set CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL=1

Matches official cmake build.

2 years ago[lldb] Remove reproducer logic from LocateSymbolFileMacOSX
Jonas Devlieghere [Wed, 13 Apr 2022 22:29:21 +0000 (15:29 -0700)]
[lldb] Remove reproducer logic from LocateSymbolFileMacOSX

2 years ago[lldb] Format LocateSymbolFileMacOSX (NFC)
Jonas Devlieghere [Wed, 13 Apr 2022 22:27:36 +0000 (15:27 -0700)]
[lldb] Format LocateSymbolFileMacOSX (NFC)

2 years agoApply clang-tidy fixes for llvm-else-after-return in SCF.cpp (NFC)
Mehdi Amini [Sun, 3 Apr 2022 23:18:19 +0000 (23:18 +0000)]
Apply clang-tidy fixes for llvm-else-after-return in SCF.cpp (NFC)

2 years agoApply clang-tidy fixes for readability-identifier-naming in OpenMPDialect.cpp (NFC)
Mehdi Amini [Sun, 3 Apr 2022 23:14:19 +0000 (23:14 +0000)]
Apply clang-tidy fixes for readability-identifier-naming in OpenMPDialect.cpp (NFC)

2 years ago[flang] expand the num_images test coverage
Damian Rouson [Thu, 17 Mar 2022 18:05:25 +0000 (11:05 -0700)]
[flang] expand the num_images test coverage

Add a test with a range of num_images() intrinsic function
invocations, including the standard-conforming but previously
untested 'team' argument.  Also test that several non-conforming
num_images() invocations generate the correct error messages.

Differential Revision: https://reviews.llvm.org/D121938

2 years ago[flang] Emit a portability warning for padding in COMMON
Peter Klausler [Thu, 31 Mar 2022 19:55:45 +0000 (12:55 -0700)]
[flang] Emit a portability warning for padding in COMMON

When padding is required in a COMMON block to ensure alignment
of a component, emit a portability warning.

Differential Revision: https://reviews.llvm.org/D123706

2 years ago[MLIR][GPU] Add GPU ops nvvm.mma.sync, nvvm.mma.ldmatrix, lane_id
Christopher Bate [Wed, 13 Apr 2022 22:40:22 +0000 (22:40 +0000)]
[MLIR][GPU] Add GPU ops nvvm.mma.sync, nvvm.mma.ldmatrix, lane_id

This change adds three new operations to the GPU dialect: gpu.mma.sync,
gpu.mma.ldmatrix, and gpu.lane_id. The former two are meant to target
the lower level nvvm.mma.sync and nvvm.ldmatrix instructions, respectively.
Lowerings are added for the new GPU operations for conversion to
NVVM.

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D123647

2 years agoAdapt "cross compile?" check for Apple Silicon
Julian Lettner [Tue, 12 Apr 2022 20:58:33 +0000 (13:58 -0700)]
Adapt "cross compile?" check for Apple Silicon

This piece of code tries to implement the semantics "cross compile?" to
determine CFLAGS used for test binary compilation.
```
if(ANDROID OR ${arch} MATCHES "arm|aarch64|riscv32|riscv64")
```

Since Apple Silicon, macOS runs on arm64e, so we take the wrong branch
when compiling and running tests locally "on the host" on an AS machine.

Furthermore, for Apple code, we use the separate
`get_test_cflags_for_apple_platform` function to determine these test
compiliation flags and `get_test_cc_for_arch` is only ever used in the
"compile & run on host" case, so we can short-curcuit the "cross
compile?" check here.

rdar://91446703

Differential Revision: https://reviews.llvm.org/D123633

2 years ago[lldb] Fix a bug in the decorator matching logic.
Jonas Devlieghere [Wed, 13 Apr 2022 22:02:39 +0000 (15:02 -0700)]
[lldb] Fix a bug in the decorator matching logic.

This changes the decorator helper `_match_decorator_property` to
consider `None` as the actual value as not a match. Using `None` for the
pattern continues to be considered a match.

I discovered the issue because marking a test as NO_DEBUG_INFO_TESTCASE
will cause the call to `self.getDebugInfo()` to return `None` and
incorrectly skip or XFAIL the corresponding test.

I used the above scenario to create a test for the decorators.

Differential revision: https://reviews.llvm.org/D123401

2 years agoRun update_test_checks.py after parameter renaming in r03b807d3f2999888bbe395945987af...
Martin Sebor [Wed, 13 Apr 2022 21:58:07 +0000 (15:58 -0600)]
Run update_test_checks.py after parameter renaming in r03b807d3f2999888bbe395945987af06f201c142 (NFC).

2 years ago[debugserver ] Un-conditionalize use of libcompression
Jonas Devlieghere [Wed, 13 Apr 2022 21:35:28 +0000 (14:35 -0700)]
[debugserver ] Un-conditionalize use of libcompression

Jason removed the include guards in 681f6c2f552f. This patch removes the
corresponding CMake logic as well.

Differential revision: https://reviews.llvm.org/D123616

2 years ago[AMDGPU] Increate hazard for store dwordx3/4 to 2 waitstates on gfx940
Stanislav Mekhanoshin [Wed, 13 Apr 2022 16:27:09 +0000 (09:27 -0700)]
[AMDGPU] Increate hazard for store dwordx3/4 to 2 waitstates on gfx940

Fixes: SWDEV-327053

Differential Revision: https://reviews.llvm.org/D123687

2 years ago[SimplifyCFG] improve readability in switch-to-select; NFC
Sanjay Patel [Wed, 13 Apr 2022 21:01:14 +0000 (17:01 -0400)]
[SimplifyCFG] improve readability in switch-to-select; NFC

2 years ago[SimplifyCFG] add more tests for switch to select transform; NFC
Sanjay Patel [Wed, 13 Apr 2022 18:26:59 +0000 (14:26 -0400)]
[SimplifyCFG] add more tests for switch to select transform; NFC

Also, make test names more descriptive -
additional coverage for D122485

2 years ago[clang] Implement Change scope of lambda trailing-return-type
Corentin Jabot [Sun, 6 Feb 2022 21:58:43 +0000 (22:58 +0100)]
[clang] Implement Change scope of lambda trailing-return-type

Implement P2036R3.

Captured variables by copy (explicitely or not), are deduced
correctly at the point we know whether the lambda is mutable,
and ill-formed before that.

Up until now, the entire lambda declaration up to the start
of the body would  be parsed in the parent scope, such that
captures would not be available to look up.

The scoping is changed to have an outer lambda scope,
followed by the lambda prototype and body.

The lambda scope is necessary because there may be a template scope
between the start of the lambda (to which we want to attach
the captured variable) and the prototype scope.

We also need to introduce a declaration context to attach the captured
variable to (and several parts of clang assume captures are handled from
the call operator context), before we know the type of the call operator.

The order of operations is as follow:

* Parse the init capture in the lambda's parent scope
* Introduce a lambda scope
* Create the lambda class and call operator
* Add the init captures to the call operator context and the lambda scope.
  But the variables are not capured yet (because we don't know their type).
  Instead, explicit  captures are stored in a temporary map that
  conserves the order of capture (for the purpose of having a stable order in the ast dumps).

* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.

* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context,
  we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).

* The lambda qualifiers are parsed, at this point,
  we can switch (for the second time) inside the lambda context,
  unset the flag indicating that we have not parsed the lambda qualifiers,
  record the lambda is mutable and capture the explicit variables.

* We can parse the rest of the lambda type, transform the lambda and call operator's types and also
  transform the call operator to a template function decl where necessary.

At this point, both captures and parameters can be injected in the body's scope.
When trying to capture an implicit variable, if we are before the qualifiers of a lambda,
we need to remember that the variables are still in the parent's context (rather than in the call operator's).

This is a recommit of adff142dc2 after a fix in d8d793f29b4

Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119136

2 years agoReplace numbered function arguments with descriptive names.
Martin Sebor [Wed, 13 Apr 2022 20:59:03 +0000 (14:59 -0600)]
Replace numbered function arguments with descriptive names.

2 years agoFix compatibility with retroactive C++23 change [NFC]
Corentin Jabot [Wed, 13 Apr 2022 20:47:44 +0000 (22:47 +0200)]
Fix compatibility with retroactive C++23 change [NFC]

Referring to capture in parameter list is now ill-formed.
This change is made to prepare for https://reviews.llvm.org/D119136

2 years ago[libc++] `bitset::operator[] const` should return bool
Nikolas Klauser [Sat, 9 Apr 2022 07:48:21 +0000 (09:48 +0200)]
[libc++] `bitset::operator[] const` should return bool

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

Reviewed By: Mordante, ldionne, var-const, #libc

Spies: jloser, libcxx-commits, arphaman

Differential Revision: https://reviews.llvm.org/D122092

2 years agoRegAlloc: Fix remaining virtual registers after allocation failure
Matt Arsenault [Sat, 26 Mar 2022 15:01:53 +0000 (11:01 -0400)]
RegAlloc: Fix remaining virtual registers after allocation failure

This testcase fails register allocation, but at the failure point
there were also new split virtual registers. Previously this was
assigning the failing register and not enqueueing the newly created
split virtual registers. These would then never be allocated and
assert in VirtRegRewriter.

2 years ago[lld-macho][nfc] De-templatize UnwindInfoSection
Jez Ng [Wed, 13 Apr 2022 20:17:29 +0000 (16:17 -0400)]
[lld-macho][nfc] De-templatize UnwindInfoSection

Follow-on to {D123276}. Now that we work with an internal
representation of compact unwind entries, we no longer need to template
our UnwindInfoSectionImpl code based on the pointer size of the target
architecture.

I've still kept the split between `UnwindInfoSectionImpl` and
`UnwindInfoSection`. I'd introduced that split in order to do type
erasure, but I think it's still useful to have in order to keep
`UnwindInfoSection`'s definition in the header file clean.

Reviewed By: #lld-macho, oontvoo

Differential Revision: https://reviews.llvm.org/D123277

2 years agoRevert "[sanitizer] Don't run malloc hooks for stacktraces"
Vitaly Buka [Wed, 13 Apr 2022 20:12:27 +0000 (13:12 -0700)]
Revert "[sanitizer] Don't run malloc hooks for stacktraces"

Breaks android and iOS bots.
https://green.lab.llvm.org/green/job/clang-san-iossim/5229/consoleFull#711521816a1ca8a51-895e-46c6-af87-ce24fa4cd561
https://lab.llvm.org/buildbot/#/builders/77/builds/16456

This reverts commit 6345d7f2a829faea56ad522a7d5180043f862a5c.

2 years ago[lldb] Expand $ when using tcsh
Jonas Devlieghere [Wed, 13 Apr 2022 16:42:56 +0000 (09:42 -0700)]
[lldb] Expand $ when using tcsh

Unlike for any of the other shells, we were escaping $ when using tcsh.
There's nothing special about $ in tcsh and this prevents you from
expanding shell variables, one of the main reasons this functionality
exists in the first place.

Differential revision: https://reviews.llvm.org/D123690

2 years ago[BOLT] Update skipRelocation for aarch64
Vladislav Khmelevsky [Thu, 7 Apr 2022 19:33:41 +0000 (22:33 +0300)]
[BOLT] Update skipRelocation for aarch64

The ld might relax ADRP+ADD or ADRP+LDR sequences to the ADR+NOP, add
the new case to the skipRelocation for aarch64.

Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei

Differential Revision: https://reviews.llvm.org/D123334

2 years agoReplace %0 in function arguments with descriptive names.
Martin Sebor [Wed, 13 Apr 2022 19:49:28 +0000 (13:49 -0600)]
Replace %0 in function arguments with descriptive names.

2 years ago[clang][dataflow] Weaken abstract comparison to enable loop termination.
Yitzhak Mandelbaum [Tue, 5 Apr 2022 19:23:13 +0000 (19:23 +0000)]
[clang][dataflow] Weaken abstract comparison to enable loop termination.

Currently, when the framework is used with an analysis that does not override
`compareEquivalent`, it does not terminate for most loops. The root cause is the
interaction of (the default implementation of) environment comparison
(`compareEquivalent`) and the means by which locations and values are
allocated. Specifically, the creation of certain values (including: reference
and pointer values; merged values) results in allocations of fresh locations in
the environment. As a result, analysis of even trivial loop bodies produces
different (if isomorphic) environments, on identical inputs. At the same time,
the default analysis relies on strict equality (versus some relaxed notion of
equivalence). Together, when the analysis compares these isomorphic, yet
unequal, environments, to determine whether the successors of the given block
need to be (re)processed, the result is invariably "yes", thus preventing loop
analysis from reaching a fixed point.

There are many possible solutions to this problem, including equivalence that is
less than strict pointer equality (like structural equivalence) and/or the
introduction of an explicit widening operation. However, these solutions will
require care to be implemented correctly. While a high priority, it seems more
urgent that we fix the current default implentation to allow
termination. Therefore, this patch proposes, essentially, to change the default
comparison to trivally equate any two values. As a result, we can say precisely
that the analysis will process the loop exactly twice -- once to establish an
initial result state and the second to produce an updated result which will
(always) compare equal to the previous. While clearly unsound -- we are not
reaching a fix point of the transfer function, in practice, this level of
analysis will find many practical issues where a single iteration of the loop
impacts abstract program state.

Note, however, that the change to the default `merge` operation does not affect
soundness, because the framework already produces a fresh (sound) abstraction of
the value when the two values are distinct. The previous setting was overly
conservative.

Differential Revision: https://reviews.llvm.org/D123586

2 years ago[mlir][vector] Add unrolling pattern for TransposeOp
Thomas Raoux [Wed, 13 Apr 2022 16:48:36 +0000 (16:48 +0000)]
[mlir][vector] Add unrolling pattern for TransposeOp

Support unrolling for vector.transpose following the same interface as
other vector unrolling ops.

Differential Revision: https://reviews.llvm.org/D123688

2 years agoRevert "[clang] Implement Change scope of lambda trailing-return-type"
Mehdi Amini [Wed, 13 Apr 2022 19:34:21 +0000 (19:34 +0000)]
Revert "[clang] Implement Change scope of lambda trailing-return-type"

This reverts commit adff142dc253d65b6560e420bba6b858d88d4a98.
This broke clang bootstrap: it made existing C++ code in LLVM invalid:

llvm/include/llvm/CodeGen/LiveInterval.h:630:53: error: captured variable 'Idx' cannot appear here
              [=](std::remove_reference_t<decltype(*Idx)> V,
                                                    ^

2 years agoRestrict lvalue-to-rvalue conversions in CGExprConstant.
Eli Friedman [Wed, 13 Apr 2022 00:13:06 +0000 (17:13 -0700)]
Restrict lvalue-to-rvalue conversions in CGExprConstant.

We were generating wrong code for cxx20-consteval-crash.cpp: instead of
loading a value of a variable, we were using its address as the
initializer.

Found while adding code to verify the size of constant initializers.

Differential Revision: https://reviews.llvm.org/D123648

2 years agoRegAllocGreedy: Remove redundant check for virtual registers
Matt Arsenault [Sat, 26 Mar 2022 21:25:34 +0000 (17:25 -0400)]
RegAllocGreedy: Remove redundant check for virtual registers

The set of interfering virtual registers obviously only includes
virtual registers.

2 years agoAMDGPU: Relax test check on tablegen debug output
Matt Arsenault [Wed, 13 Apr 2022 18:31:39 +0000 (14:31 -0400)]
AMDGPU: Relax test check on tablegen debug output

Try to match tN and pointer for asserts and non-assert builds.

2 years ago[iwyu] Handle regressions in libLLVM header include
serge-sans-paille [Wed, 13 Apr 2022 16:39:26 +0000 (12:39 -0400)]
[iwyu] Handle regressions in libLLVM header include

Running iwyu-diff on LLVM codebase since a96638e50ef5 detected a few
regressions, fixing them.

2 years ago[DA] Refactor with a better API
Congzhe Cao [Wed, 13 Apr 2022 18:45:48 +0000 (14:45 -0400)]
[DA] Refactor with a better API

Refactor from iteratively using BitCastInst::getOperand()
to using stripPointerCasts() instead. This is an improvement
since now we are able to analyze more cases, please refer
to test cases added in this patch.

Reviewed By: Meinersbur, #loopoptwg

Differential Revision: https://reviews.llvm.org/D123559

2 years ago[BOLT][TEST] Add -no-pie to two tests
Amir Ayupov [Wed, 13 Apr 2022 18:46:59 +0000 (11:46 -0700)]
[BOLT][TEST] Add -no-pie to two tests

Missed these two tests in D123329 in a rebase.

2 years ago[sanitizer] Don't run malloc hooks for stacktraces
Vitaly Buka [Sat, 9 Apr 2022 02:53:41 +0000 (19:53 -0700)]
[sanitizer] Don't run malloc hooks for stacktraces

Usually when we generated stacktraces the process is in error state, so
running hooks may crash the process and prevent meaningfull error report.

Symbolizer, unwinder and pthread are potential source of mallocs.

https://b.corp.google.com/issues/228110771

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D123566

2 years agoFix a typo with this test function name
Aaron Ballman [Wed, 13 Apr 2022 18:42:52 +0000 (14:42 -0400)]
Fix a typo with this test function name

The call and the function name don't line up correctly, so this was
accidentally using an implicit function declaration when it didn't
intend to.

2 years ago[BOLT][TEST] Remove -no-pie from cflags/cxxflags
Amir Ayupov [Thu, 7 Apr 2022 18:23:20 +0000 (11:23 -0700)]
[BOLT][TEST] Remove -no-pie from cflags/cxxflags

Align with an upstream change D120305 to make PIE the default on linux-gnu.

Add `-no-pie` to tests that require it.

Reviewed By: maksfb, yota9

Differential Revision: https://reviews.llvm.org/D123329

2 years ago[Clang] Fix html error in cxx_status.html [NFC]
Corentin Jabot [Wed, 13 Apr 2022 18:26:40 +0000 (20:26 +0200)]
[Clang] Fix html error in cxx_status.html [NFC]

2 years agoRevert "[LICM] Only create load in pre-header when promoting load."
Florian Hahn [Wed, 13 Apr 2022 18:24:28 +0000 (20:24 +0200)]
Revert "[LICM] Only create load in pre-header when promoting load."

This reverts commit 4bf3b7dc929c8288e9e5631978ef060d9140b251.

This might be causing another buildbot failure.

2 years ago[BOLT] Ignore PC-relative relocations from data to data
Maksim Panchenko [Wed, 13 Apr 2022 01:42:19 +0000 (18:42 -0700)]
[BOLT] Ignore PC-relative relocations from data to data

BOLT expects PC-relative relocations in data sections to reference code
and the relocated data to form a jump table. However, there are cases
where PC-relative addressing is used for data-to-data references
(e.g. clang-15 can generate such code). BOLT should recognize and ignore
such relocations. Otherwise, they will be considered relocations not
claimed by any jump table and cause a failure in the strict mode.

Reviewed By: yota9, Amir

Differential Revision: https://reviews.llvm.org/D123650

2 years ago[BOLT] Fix data race in shortenInstructions
Amir Ayupov [Wed, 13 Apr 2022 18:09:25 +0000 (11:09 -0700)]
[BOLT] Fix data race in shortenInstructions

Address ThreadSanitizer warning

Reviewed By: maksfb

Differential Revision: https://reviews.llvm.org/D121338

2 years agoFix Werror build issue from 6f20744b7ff875
Erich Keane [Wed, 13 Apr 2022 17:57:05 +0000 (10:57 -0700)]
Fix Werror build issue from 6f20744b7ff875

2 years ago[clang] Implement Change scope of lambda trailing-return-type
Corentin Jabot [Sun, 6 Feb 2022 21:58:43 +0000 (22:58 +0100)]
[clang] Implement Change scope of lambda trailing-return-type

Implement P2036R3.

Captured variables by copy (explicitely or not), are deduced
correctly at the point we know whether the lambda is mutable,
and ill-formed before that.

Up until now, the entire lambda declaration up to the start of the body would be parsed in the parent scope, such that capture would not be available to look up.

The scoping is changed to have an outer lambda scope, followed by the lambda prototype and body.

The lambda scope is necessary because there may be a template scope between the start of the lambda (to which we want to attach the captured variable) and the prototype scope.

We also need to introduce a declaration context to attach the captured variable to (and several parts of clang assume captures are handled from the call operator context), before we know the type of the call operator.

The order of operations is as follow:

* Parse the init capture in the lambda's parent scope

* Introduce a lambda scope

* Create the lambda class and call operator

* Add the init captures to the call operator context and the lambda scope. But the variables are not capured yet (because we don't know their type).
Instead, explicit  captures are stored in a temporary map that conserves the order of capture (for the purpose of having a stable order in the ast dumps).

* A flag is set on LambdaScopeInfo to indicate that we have not yet injected the captures.

* The parameters are parsed (in the parent context, as lambda mangling recurses in the parent context, we couldn't mangle a lambda that is attached to the context of a lambda whose type is not yet known).

* The lambda qualifiers are parsed, at this point We can switch (for the second time) inside the lambda context, unset the flag indicating that we have not parsed the lambda qualifiers,
record the lambda is mutable and capture the explicit variables.

* We can parse the rest of the lambda type, transform the lambda and call operator's types and also transform the call operator to a template function decl where necessary.

At this point, both captures and parameters can be injected in the body's scope. When trying to capture an implicit variable, if we are before the qualifiers of a lambda, we need to remember that the variables are still in the parent's context (rather than in the call operator's).

Reviewed By: aaron.ballman, #clang-language-wg, ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119136

2 years ago[mlir][ods] Remove StrEnumAttr
Mogball [Wed, 2 Mar 2022 18:00:05 +0000 (18:00 +0000)]
[mlir][ods] Remove StrEnumAttr

StrEnumAttr has been deprecated in favour of EnumAttr, a solution based on AttrDef (https://reviews.llvm.org/D115181). This patch removes StrEnumAttr, along with all the custom ODS logic required to handle it.

See https://discourse.llvm.org/t/psa-stop-using-strenumattr-do-use-enumattr/5710 on how to transition to EnumAttr. In short,

```
// Before
def MyEnumAttr : StrEnumAttr<"MyEnum", "", [
  StrEnumAttrCase<"A">,
  StrEnumAttrCase<"B">
]>;

// After (pick an integer enum of your choice)
def MyEnum : I32EnumAttr<"MyEnum", "", [
  I32EnumAttrCase<"A", 0>,
  I32EnumAttrCase<"B", 1>
]> {
  // Don't generate a C++ class! We want to use the AttrDef
  let genSpecializedAttr = 0;
}
// Define the AttrDef
def MyEnum : EnumAttr<MyDialect, MyEnum, "my_enum">;
```

Reviewed By: rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D120834

2 years ago[Sema] Don't check bounds for function pointer
Aleksandr Platonov [Wed, 13 Apr 2022 17:38:59 +0000 (20:38 +0300)]
[Sema] Don't check bounds for function pointer

Currently, clang crashes with i386 target on the following code:
```
void f() {
  f + 0xdead000000000000UL;
}
```
This problem is similar to the problem fixed in D104424, but that fix can't handle function pointer case, because `getTypeSizeInCharsIfKnown()` says that size is known and equal to 0 for function type.

This patch prevents bounds checking for function pointer, thus fixes the crash.

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

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D122748

2 years agoAdd support for ignored bitfield conditional codegen.
Erich Keane [Wed, 13 Apr 2022 13:46:42 +0000 (06:46 -0700)]
Add support for ignored bitfield conditional codegen.

Currently we emit an error in just about every case of conditionals
with a 'non simple' branch if treated as an LValue.  This patch adds
support for the special case where this is an 'ignored' lvalue, which
permits the side effects from happening.

It also splits up the emit for conditional LValue in a way that should
be usable to handle simple assignment expressions in similar situations.

Differential Revision: https://reviews.llvm.org/D123680

2 years ago[mlir][pdll] Include string in PDLLServer.h
Jacques Pienaar [Wed, 13 Apr 2022 17:31:06 +0000 (10:31 -0700)]
[mlir][pdll] Include string in PDLLServer.h

2 years ago[libunwind][AIX] implementation of the unwinder for AIX
Xing Xue [Wed, 13 Apr 2022 17:18:10 +0000 (13:18 -0400)]
[libunwind][AIX] implementation of the unwinder for AIX

NFC - revert identation changes in AddressSpace.hpp from the previous commit

Differential Revision: https://reviews.llvm.org/D100132

2 years agoRevert "[ValueTracking] Make getStringLenth aware of strdup"
serge-sans-paille [Wed, 13 Apr 2022 08:31:44 +0000 (10:31 +0200)]
Revert "[ValueTracking] Make getStringLenth aware of strdup"

This reverts commit e810d558093cff40caaa1aff24d289c76c59916d.

The commit was not taken into account the fact that strduped string could be
modified. Checking if such modification happens would make the function very
costly, without a test case in mind it's not worth the effort.

2 years ago[AArch64] Add new shuffles tests, and regenerate aarch64-wide-shuffle.ll and neon...
David Green [Wed, 13 Apr 2022 17:10:49 +0000 (18:10 +0100)]
[AArch64] Add new shuffles tests, and regenerate aarch64-wide-shuffle.ll and neon-wide-splat.ll. NFC

2 years ago[mlir][pdll] Rename extra dir flag
Jacques Pienaar [Wed, 13 Apr 2022 17:00:10 +0000 (10:00 -0700)]
[mlir][pdll] Rename extra dir flag

Not sure why this is overlapping, need to repro locally, but just rename
to something more explicit instead.

2 years ago[AArch64][SelectionDAG] stick all the power-of-two tests in a separate file; NFC
chenglin.bi [Wed, 13 Apr 2022 16:48:28 +0000 (00:48 +0800)]
[AArch64][SelectionDAG] stick all the power-of-two tests in a separate file; NFC

Baseline tests for D122968 (issue #54649).

2 years ago[NFC] Fix build failure with GCC 11 in C++20 mode
Evgeny Mandrikov [Wed, 13 Apr 2022 16:42:29 +0000 (09:42 -0700)]
[NFC] Fix build failure with GCC 11 in C++20 mode

This was already fixed in
https://github.com/llvm/llvm-project/commit/2ccf0b76bcaf0895e04f14e3ff53c59dd96f9f0f
but then regressed in
https://github.com/llvm/llvm-project/commit/79a1f3e7c6d338b953b4dfe8cd7cb13ba60fe4e7

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D123589

2 years ago[mlir][pdll] Add extra-dirs for LSP includes.
Jacques Pienaar [Wed, 13 Apr 2022 16:41:45 +0000 (09:41 -0700)]
[mlir][pdll] Add extra-dirs for LSP includes.

Enable specifying additional include directories to search. This is
consistent with what one can do with clangd (although there it is more
general compilation options) and Python LSP. We would in general expect
these to be provided by compilation database equivalent.

Differential Revision: https://reviews.llvm.org/D123474

2 years agoCheck users of instrinsics instead of traversing entire function.NFC
Anna Thomas [Wed, 13 Apr 2022 16:08:53 +0000 (12:08 -0400)]
Check users of instrinsics instead of traversing entire function.NFC

Updated LowerGuardIntrinsic and LowerWidenableCondition to check for
users of the respective intrinsic, instead of checking for guards and
widenable conditions by traversing the entire function.

This is an NFC. Should save some compile time.

2 years ago[NFC] Add CMake cache file for HLSL
Chris Bieneman [Wed, 13 Apr 2022 16:25:08 +0000 (11:25 -0500)]
[NFC] Add CMake cache file for HLSL

This just adds a trivial CMake cache file (which will grow over time)
to handle the common build configuration for the HLSL compiler.

2 years ago[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer
Momchil Velikov [Wed, 13 Apr 2022 15:21:33 +0000 (16:21 +0100)]
[AArch64] Async unwind - Adjust unwind info in AArch64LoadStoreOptimizer

The AArch64LoadStoreOptimnizer pass may merge a register
increment/decrement with a following memory operation. In doing so, it
may break CFI by moving a stack pointer adjustment past the CFI
instruction that described *that* adjustment.

This patch fixes this issue by moving said CFI instruction after the
merged instruction, where the SP increment/decrement actually takes
place.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D114547

2 years ago[demangler] Rust demangler buffer return
Nathan Sidwell [Fri, 8 Apr 2022 17:13:41 +0000 (10:13 -0700)]
[demangler] Rust demangler buffer return

The rust demangler has some odd buffer handling code, which will copy
the demangled string into the provided buffer, if it will fit.
Otherwise it uses the allocated buffer it made.  But the length of the
incoming buffer will have come from a previous call, which was the
length of the demangled string -- not the buffer size.  And of course,
we're unconditionally allocating a temporary buffer in the first
place.  So we don't actually get buffer reuse, and we get a memcpy in
somecases.

However, nothing in LLVM ever passes in a non-null pointer.  Neither
does anything pass in a status pointer that is then made use of.  The
only exercise these have is in the test suite.

So let's just make the rust demangler have the same API as the dlang
demangler.

Reviewed By: tmiasko

Differential Revision: https://reviews.llvm.org/D123420

2 years ago[AMDGPU] Initialize a couple more Subtarget fields
Jay Foad [Wed, 13 Apr 2022 15:24:31 +0000 (16:24 +0100)]
[AMDGPU] Initialize a couple more Subtarget fields

This is just for consistency. The fields are never actually used
so it is NFC.