SuccessChanges

Summary

  1. [CMake][compiler-rt][AArch64] Avoid preprocessing LSE builtins separately (details)
  2. [LoopIdiom] Pre-commit tests for D92745. NFC (details)
  3. [Flang][OpenMP] Semantic checks for Atomic construct. (details)
  4. [AST][RecoveryExpr] Preserve type for broken overrload member call expr. (details)
  5. [PowerPC][FP128] Fix the incorrect signature for math library call (details)
  6. [clangd] Go-to-definition on pure virtual method decls jumps to all overrides. (details)
  7. [Flang][OpenMP-5.0] Semantic checks for flush construct. (details)
Commit 33b740f8dc3496237619a7bc6722f23655cb1f94 by raul
[CMake][compiler-rt][AArch64] Avoid preprocessing LSE builtins separately

Invoking the preprocessor ourselves is fragile and would require us to replicate CMake's handling of definitions, compiler flags, etc for proper compatibility.
In my toolchain builds this notably resulted in a bunch of warnings from unused flags as my CMAKE_C_FLAGS includes CPU-specific optimization options.
Notably this part was already duplicating the logic for VISIBILITY_HIDDEN define.

Instead, symlink the files and set the proper set of defines on each.
This should also be faster as we avoid invoking the compiler multiple times.

Fixes https://llvm.org/PR48494

Reviewed By: ilinpv

Differential Revision: https://reviews.llvm.org/D93178
The file was modifiedcompiler-rt/lib/builtins/CMakeLists.txt
The file was modifiedcompiler-rt/lib/builtins/aarch64/lse.S
Commit 2acd5a473860d6ed024252367e7fdefa105e9df9 by craig.topper
[LoopIdiom] Pre-commit tests for D92745. NFC
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/ctlz.ll
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/cttz.ll
Commit e43b3b08ccd60d63d4c3316859e9fec4cdaeaddd by joshisameeran17
[Flang][OpenMP] Semantic checks for Atomic construct.

Patch implements restrictions from 2.17.7  of OpenMP 5.0 standard for atomic Construct. Tests for the same are added.

One of the restriction
`OpenMP constructs may not be encountered during execution of an atomic region.`
Is mentioned in 5.0 standard to be a semantic restriction, but given the stricter nature of parser in F18 it's caught at parsing itself.

This patch is a next patch in series from D88965.

Reviewed By: clementval

Differential Revision: https://reviews.llvm.org/D89583
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was addedflang/test/Semantics/omp-atomic01.f90
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/test/Semantics/omp-atomic.f90
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
Commit 6326b098852bea51debe415a85eebd1753151cd0 by hokein.wu
[AST][RecoveryExpr] Preserve type for broken overrload member call expr.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D80109
The file was modifiedclang/test/AST/ast-dump-recovery.cpp
The file was modifiedclang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
Commit 08e287aaf39f3ab8ccfcd4535fafa1c5d99ffdf7 by qshanz
[PowerPC][FP128] Fix the incorrect signature for math library call

The runtime library has two family library implementation for ppc_fp128 and fp128.
For IBM Long double(ppc_fp128), it is suffixed with 'l', i.e(sqrtl). For
IEEE Long double(fp128), it is suffixed with "ieee128" or "f128".
We miss to map several libcall for IEEE Long double.

Reviewed By: qiucf

Differential Revision: https://reviews.llvm.org/D91675
The file was modifiedllvm/test/CodeGen/PowerPC/f128-rounding.ll
The file was modifiedllvm/test/CodeGen/PowerPC/f128-conv.ll
The file was modifiedllvm/test/CodeGen/PowerPC/fp-strict-f128.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/f128-arith.ll
The file was modifiedllvm/test/CodeGen/PowerPC/recipest.ll
The file was modifiedllvm/test/CodeGen/PowerPC/fp-strict-conv-f128.ll
Commit 63ec9e40d10056b0f85605d585e7db0b4146851e by hokein.wu
[clangd] Go-to-definition on pure virtual method decls jumps to all overrides.

Reviewed By: usaxena95

Differential Revision: https://reviews.llvm.org/D92299
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
Commit f1569b1ece5516d31d8c748f7b2981a688e32826 by joshisameeran17
[Flang][OpenMP-5.0] Semantic checks for flush construct.

From OMP 5.0 [2.17.8]
Restriction:
If memory-order-clause is release,acquire, or acq_rel, list items must not be specified on the flush directive.

Reviewed By: kiranchandramohan, clementval

Differential Revision: https://reviews.llvm.org/D89879
The file was modifiedflang/lib/Lower/OpenMP.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was addedflang/test/Semantics/omp-flush02.f90
The file was modifiedflang/lib/Parser/openmp-parsers.cpp
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
The file was addedflang/test/Semantics/omp-flush01.f90
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Parser/unparse.cpp
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp