[AArch64] Remove unused SDTypeProfile from AArch64InstrInfo.td (NFC) (#198269)
These became dead in earlier cleanups:
- SDT_AArch64unvec and SDT_AArch64binvec in b0b97e3b0507
- SDT_AArch64fcmpz in d7f3c3129344
- SDT_AArch64TLSDescCall in aea846182090
[flang][debug] Only import debug info for specified renamed variables (#194926)
Given the following:
USE mod, ONLY : alias => var
Currently, flang will create a DW_TAG_imported_module tag for mod when
it should only be creating a list of DW_TAG_imported_declaration tags
for each imported variable. This causes erroneous variables from mod to
be visible in the debugger with undefined information.
The correct logic to do this was previously implemented at line 837 in
flang/lib/Optimizer/Transforms/AddDebugInfo.cpp under the comment "//
Process renames within ONLY clause". But this code block would never be
invoked as the function handleOnlyClause would never be called as only
one of renames or ONLY clauses could be present at once, not both. This
commit fixes the logic and allows the proper code block to be called.
Fixes #180836
[flang-rt] Add -Wno-fenv-access to flang-rt compile options
A check recently added to clang will now flag uses of floating-point
exception routines. There are some calls to these functions in the
flang runtime. Since the flang runtime is compiled with the freshly
built clang, it now shows these warnings.
Since the CI build uses -Werror, this breaks the flang-rt build
even though no changes to the flang-rt were made:
flang-rt/lib/runtime/main.cpp:20:3: error:
'feclearexcept' used without enabling floating-point exception behavior;
use 'pragma STDC FENV_ACCESS ON' or compile with
'-ffp-exception-behavior=maytrap' [-Werror,-Wfenv-access]
20 | std::feclearexcept(FE_ALL_EXCEPT);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
flang-rt/lib/runtime/main.cpp:25:3: error:
'fesetround' used without enabling floating-point exception behavior; use
'pragma STDC FENV_ACCESS ON' or compile with
[7 lines not shown]
[LoopInterchange] Add tests for a simple profitable case currently missed (NFC) (#181990)
This patch adds test cases where the heuristic function `instorder` is
somewhat inaccurate, causing the profitability decision to behave
unexpectedly. The root cause is that the heuristic function assumes that
the structure of GEPs "reflect" the original memory access patterns,
which is not always the case. For example, given the following code:
```c
int A[100][100];
for (i = 0; i < 100; i++)
for (j = 0; j < 100; j++)
A[i][j] = ...;
```
The heuristic assumes that the memory access will be transformed into
like:
```llvm
[14 lines not shown]
[X86] Add atomic vector store tests for unaligned >1 sizes. (#197372)
Unaligned atomic vector stores with size >1 are lowered to calls.
Adding their tests separately here.
Store-side counterpart to #148896. Stacked below #197165.
[LLVM][AsmWriter] Fix ConstantFP zeroinitializer check (#196097)
It turns out ppc_fp128 has a value where isPosZero() returns true but
isNullValue() returns false.
[X86] Fix Invalid assembly given inverted meaning (#190460)
Previously, `lea rax, [rax - 8 * rdx]` would be misassembled as `lea rax, [rax + 8 * rdx]` when a program with this line should've been rejected.
This patch rejects the invalid program and cleans up some misleading `unknown token in expression` diagnostics that came up in similar programs.
Fixes: https://github.com/llvm/llvm-project/issues/96427