Changes

Summary

  1. Fix buildbot error. (details)
  2. Support: Fix missing whitespace in comment for inconvertibleErrorCode(), NFC (details)
  3. [x86] add AVX run to tests of fcmp logic; NFC (details)
  4. [lldb] [gdb-remote] Refactor getting remote regs to use local vector (details)
  5. [lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs (details)
  6. [clang] Use portable "#!/usr/bin/env bash" shebang for tools and utils. (details)
  7. [RegAlloc] Cast uint8_t to unsigned before printing it. (details)
  8. [SampleFDO] Remove redundant declarations (NFC) (details)
  9. [PowerPC] Add range checks for P10 Vector Builtins (details)
  10. [libc++] Use CMake interface targets to setup benchmark flags (details)
  11. [LiveIntervals] Fix repairOldRegInRange for simple def cases (details)
  12. Revert "[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs" (details)
  13. Revert "[lldb] [gdb-remote] Refactor getting remote regs to use local vector" (details)
  14. Resolve {GlobalValue,GloalIndirectSymol}::getBaseObject confusion (details)
  15. [JumpThreading] Ignore free instructions (details)
  16. [fir][NFC] rename canBePointerOrHeapElementType to cannotBePointerOrHeapElementType (details)
  17. Revert "[LiveIntervals] Fix repairOldRegInRange for simple def cases" (details)
  18. [fir][NFC] Remove fir.cmpf replaced by mlir.cmpf (details)
  19. [ARM] Extra tests for unpredicated qr MVE intrinsics. (details)
  20. [libc++] Remove unused macro in __config (details)
  21. [flang] Implement READ(SIZE=) and INQUIRE(IOLENGTH=) in runtime (details)
  22. [compiler-rt][profile] Add padding after binary IDs (details)
  23. [lldb] Add a C language REPL to test LLDB's REPL infrastructure (details)
  24. [WebAssembly] Add prototype relaxed SIMD fma/fms instructions (details)
  25. [lldb] [gdb-remote] Refactor getting remote regs to use local vector (details)
  26. [lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs (details)
  27. Revert "Diagnose -Wunused-value based on CFG reachability" (details)
  28. [x86] move combiner state check into convertIntLogicToFPLogic(); NFC (details)
  29. [x86] add AVX512 run for fcmp+logic ops; NFC (details)
  30. [RISCV] Add more tests for (and (srl x, C2), C1) that can be improved by using a pair of shifts. NFC (details)
  31. [RISCV] Add more isel optimizations for (and (shr x, c2), c1). (details)
  32. [AArch64] Update some sve-fixed-length test checks. (details)
  33. [clang-format] Add Left/Right Const fixer capability (details)
  34. [gn build] Port a44ab1702539 (details)
  35. [InlineAdvisor] Use one single quote (details)
  36. [ORC] Minor renaming and typo fixes (NFC) (details)
  37. [llvm] Replace tab with spaces in one test (details)
  38. [llvm] Fix a copy-pasto (details)
  39. [ORC][examples] Export exectuable symbols explicitly in LLJITWithExecutorProcessControl (details)
  40. [mlir][sparse] Moved a conditional from the RT library to the generated MLIR. (details)
  41. [lldb] Show fix-it applied even if expression didn't evaluate succesfully (details)
  42. [flang] Represent (parentheses around derived types) (details)
  43. [Polly] Remove -polly-opt-fusion option. (details)
  44. Support: Add closing namespace comment in raw_ostream_test.cpp, NFC (details)
  45. Revert "[Polly] Implement user-directed loop distribution/fission." (details)
  46. [clang-format] NFC ensure Penality variable is passed back with Fixes (details)
  47. [clangd] Support `#pragma mark` in the outline (details)
  48. [CMake] Pass llvm-readelf to CMake external builds (details)
  49. [RISCV] Add more tests for (and (shl x, C2), C1) that can be improved by using a pair of shifts. NFC (details)
  50. [RISCV] Add another isel optimization for (and (shl x, c2), c1) (details)
  51. RegAllocGreedy: Remove an unhelpful auto, and don't use a reference (details)
  52. [OpenMP] Fix data-race in new device RTL (details)
  53. [lldb] Handle malformed qfThreadInfo reply (details)
  54. [profile][fuchsia] Don't include extra NUL in log messages (details)
  55. [AMDGPU] Propagate defining src reg for AGPR to AGPR Copys (details)
  56. [libc++][NFC] Refactor the std::reverse_view tests (details)
Commit 8ecf3660f2de3b88d10db0fd52d0bc80bda33dcc by hokein.wu
Fix buildbot error.

-frounding-math is not available for all targets.
The file was modifiedclang/test/SemaCXX/rounding-math-crash.cpp (diff)
Commit 87689657e28cd78faf2e07e859fb5b96f7a1f8fc by Duncan P. N. Exon Smith
Support: Fix missing whitespace in comment for inconvertibleErrorCode(), NFC
The file was modifiedllvm/include/llvm/Support/Error.h (diff)
Commit b240a2980b6e3777d6659d993f3ba60a3ca84bcb by spatel
[x86] add AVX run to tests of fcmp logic; NFC

The ISA before AVX has predicate gaps for both fcmp
codegen alternatives, so that requires a more
complicated fix to get ideal asm in all cases.
The file was modifiedllvm/test/CodeGen/X86/fcmp-logic.ll (diff)
Commit b03e701c145365ba339657ead54a2e0cc5c02776 by mgorny
[lldb] [gdb-remote] Refactor getting remote regs to use local vector

Refactor remote register getters to collect them into a local
std::vector rather than adding them straight into DynamicRegisterInfo.
The purpose of this change is to lay groundwork for switching value_regs
and invalidate_regs to use local LLDB register numbers rather than
remote numbers.

Differential Revision: https://reviews.llvm.org/D110025
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (diff)
Commit 6fbed33d4a7de2229c40e6318f223092d3a23848 by mgorny
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs

Switch the gdb-remote client logic to use local (LLDB) register numbers
in value_regs/invalidate_regs rather than remote regnos. This involves
translating regnos received from lldb-server.

Differential Revision: https://reviews.llvm.org/D110027
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
Commit 7f5ca8cc2158debe66663f09eb19b4613e75e124 by shivam98.tkg
[clang] Use portable "#!/usr/bin/env bash" shebang for tools and utils.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D110041
The file was modifiedclang/tools/diag-build/diag-build.sh (diff)
The file was modifiedclang/utils/make-ast-dump-check.sh (diff)
Commit d5c67bba62d3abc96ac501f45cabc33a100b00e8 by craig.topper
[RegAlloc] Cast uint8_t to unsigned before printing it.

raw_ostream interprets uint8_t as wanting to print a character
with that ASCII value. In this case the uint8_t is an integer
that we want to print.
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp (diff)
Commit a95061691e43fd9a4216e60917715bdc58660d17 by kazu
[SampleFDO] Remove redundant declarations (NFC)

Note that these are declared in SampleProfileLoaderBaseUtil.h, which
SampleProfileLoaderBaseImpl.h includes.
The file was modifiedllvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h (diff)
Commit f9912fe4eac91f27965c22d015b3109c5158d050 by quinn.pham
[PowerPC] Add range checks for P10 Vector Builtins

This patch adds range checking for some Power10 altivec builtins and
changes the signature of a builtin to match documentation. For `vec_cntm`,
range checking is done via SemaChecking. For `vec_splati_ins`, the second
argument is masked to extract the 0th bit so that we always receive either a `0`
or a `1`.

Reviewed By: lei, amyk

Differential Revision: https://reviews.llvm.org/D109710
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
The file was addedclang/test/CodeGen/builtins-ppc-p10vector-error.c
The file was modifiedclang/lib/Headers/altivec.h (diff)
Commit fd04fd9ac92d705f7d144b77109b8bcec950c04f by Louis Dionne
[libc++] Use CMake interface targets to setup benchmark flags

This is a re-application of da0592e4c8df which was reverted in
1454018dc1d9 because it was incompatible with older CMakes.
Instead, disable the benchmarks when CMake is too old to
support those idioms.

Differential Revision: https://reviews.llvm.org/D110285
The file was modifiedlibcxx/benchmarks/CMakeLists.txt (diff)
Commit 8229cb74125322ff337cfe316ab35c6ebf412bde by jay.foad
[LiveIntervals] Fix repairOldRegInRange for simple def cases

The fix applied in D23303 "LiveIntervalAnalysis: fix a crash in repairOldRegInRange"
was over-zealous. It would bail out when the end of the range to be
repaired was in the middle of the first segment of the live range of
Reg, which was always the case when the range contained a single def of
Reg.

This patch fixes it as suggested by Matthias Braun in post-commit review
on the original patch, and tests it by adding -early-live-intervals to
a selection of existing lit tests that now pass.

(Note that D23303 was originally applied to fix a crash in
SILoadStoreOptimizer, but that is now moot since D23814 updated
SILoadStoreOptimizer to run before scheduling so it no longer has to
update live intervals.)

Differential Revision: https://reviews.llvm.org/D110238
The file was modifiedllvm/lib/CodeGen/LiveIntervals.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/twoaddr-regsequence.mir
The file was modifiedllvm/test/CodeGen/X86/mul-shift-reassoc.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/extract-load-i1.ll (diff)
The file was modifiedllvm/test/CodeGen/ARM/signext-inreg.ll (diff)
Commit 12504f50729a338fb37c1c1863e7125b607e11d7 by mgorny
Revert "[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs"

This reverts commit 6fbed33d4a7de2229c40e6318f223092d3a23848.
The prerequisite commit is causing regressions.
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp (diff)
Commit bcb6b97cde84b6acd67d5551302683234c09337c by mgorny
Revert "[lldb] [gdb-remote] Refactor getting remote regs to use local vector"

This reverts commit b03e701c145365ba339657ead54a2e0cc5c02776.  This is
causing regressions when XML support is disabled.
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (diff)
Commit 1a6e1ee42a6af255d45e3fd2fe87021dd31f79bb by i
Resolve {GlobalValue,GloalIndirectSymol}::getBaseObject confusion

While both GlobalAlias and GlobalIFunc are GlobalIndirectSymbol, their
`getIndirectSymbol()` usage is quite different (GlobalIFunc's resolver
is an entity different from GlobalIFunc itself).

As discussed on https://lists.llvm.org/pipermail/llvm-dev/2020-September/144904.html
("[IR] Modelling of GlobalIFunc"), the name `getBaseObject` is confusing when
used with GlobalIFunc.

To resolve the confusion:

* Move GloalIndirectSymol::getBaseObject to GlobalAlias:: (GlobalIFunc should use `getResolver` instead)
* Change GlobalValue::getBaseObject not to inspect GlobalIFunc. Note: the function has 7 references.
* Add GlobalIFunc::getResolverFunction to peel off potential ConstantExpr indirection
  (`strlen` in `test/LTO/Resolution/X86/ifunc.ll`)

Note: GlobalIFunc::getResolver (like GlobalAlias::getAliasee which does not peel
off ConstantExpr indirection) is kept to be used by ValueEnumerator.

Reviewed By: ibookstein

Differential Revision: https://reviews.llvm.org/D109792
The file was modifiedllvm/include/llvm/IR/GlobalIFunc.h (diff)
The file was modifiedllvm/test/LTO/Resolution/X86/ifunc.ll (diff)
The file was modifiedllvm/lib/IR/Globals.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/SplitModule.cpp (diff)
The file was modifiedllvm/include/llvm/IR/GlobalAlias.h (diff)
The file was modifiedllvm/lib/Object/ModuleSymbolTable.cpp (diff)
The file was modifiedllvm/lib/Object/IRSymtab.cpp (diff)
Commit 1e3c6fc7cb9d2ee6a5328881f95d6643afeadbff by nikita.ppv
[JumpThreading] Ignore free instructions

This is basically D108837 but for jump threading. Free instructions
should be ignored for the threading decision. JumpThreading already
skips some free instructions (like pointer bitcasts), but does not
skip various free intrinsics -- in fact, it currently gives them a
fairly large cost of 2.

Differential Revision: https://reviews.llvm.org/D110290
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp (diff)
The file was modifiedllvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll (diff)
The file was modifiedllvm/test/Transforms/JumpThreading/free_instructions.ll (diff)
The file was modifiedllvm/include/llvm/Transforms/Scalar/JumpThreading.h (diff)
Commit bbc74a11bc15f4ce962ac7f915309145dcfc2582 by clementval
[fir][NFC] rename canBePointerOrHeapElementType to cannotBePointerOrHeapElementType

This patch is part of the upstreaming effort from fir-dev branch.
Rename the function so the name conveys better what it does.

Reviewed By: jeanPerier

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

Co-authored-by: schweitz
Co-authored-by: jeanPerier
The file was modifiedflang/lib/Optimizer/Dialect/FIRType.cpp (diff)
Commit deb2ca566ae70303042e3ab9296978895a817bf8 by jay.foad
Revert "[LiveIntervals] Fix repairOldRegInRange for simple def cases"

This reverts commit 8229cb74125322ff337cfe316ab35c6ebf412bde.

It was failing on buildbots with expensive checks enabled.
The file was removedllvm/test/CodeGen/AMDGPU/twoaddr-regsequence.mir
The file was modifiedllvm/test/CodeGen/ARM/signext-inreg.ll (diff)
The file was modifiedllvm/lib/CodeGen/LiveIntervals.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/mul-shift-reassoc.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/extract-load-i1.ll (diff)
Commit 2155aa79d7019b620906d94ae6be72179bfd4880 by clementval
[fir][NFC] Remove fir.cmpf replaced by mlir.cmpf

fir.cmpf op is not necessary anymore as it is replaced by mlir.cmpf.
This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: jeanPerier

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

Co-authored-by: schweitzpgi
Co-authored-by: jeanPerier
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td (diff)
The file was modifiedflang/test/Fir/fir-ops.fir (diff)
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp (diff)
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.h (diff)
The file was modifiedflang/lib/Lower/IntrinsicCall.cpp (diff)
Commit e2050f94b65322f886eade488e4398cb38a480df by david.green
[ARM] Extra tests for unpredicated qr MVE intrinsics.
The file was modifiedllvm/test/CodeGen/Thumb2/mve-qrintr.ll (diff)
Commit e6126faba060d5341dae6c5cc99a22a80d8c4d23 by Louis Dionne
[libc++] Remove unused macro in __config

That macro was being defined but not used anywhere in libc++, so it
must be safe to remove it.

As a fly-by fix, also remove mentions of this macro in other places
in LLVM, to make sure they were not depending on the value defined in
libc++.

Differential Revision: https://reviews.llvm.org/D110289
The file was modifiedllvm/lib/Support/LockFileManager.cpp (diff)
The file was modifiedlibcxx/include/__config (diff)
The file was modifiedclang-tools-extra/clangd/unittests/JSONTransportTests.cpp (diff)
Commit 4393e3776b41471afbd37cb13fe5b777243fedd1 by pklausler
[flang] Implement READ(SIZE=) and INQUIRE(IOLENGTH=) in runtime

Count input characters corresponding to formatted edit descriptors
for READ(SIZE=); count output bytes for INQUIRE(IOLENGTH=).

The I/O APIs GetSize() and GetLength() were adjusted to return
std::size_t as function results.

Basic unit tests were added (and others fixed).

Differential Revision: https://reviews.llvm.org/D110291
The file was modifiedflang/runtime/io-stmt.h (diff)
The file was modifiedflang/include/flang/Runtime/io-api.h (diff)
The file was modifiedflang/runtime/descriptor-io.h (diff)
The file was modifiedflang/runtime/edit-input.cpp (diff)
The file was modifiedflang/unittests/Runtime/ExternalIOTest.cpp (diff)
The file was modifiedflang/runtime/io-stmt.cpp (diff)
The file was modifiedflang/runtime/io-api.cpp (diff)
The file was modifiedflang/runtime/unit.cpp (diff)
Commit 6bc9c8dfe32cc4662f2ed9041af527f69dfff13b by leonardchan
[compiler-rt][profile] Add padding after binary IDs

Some tests with binary IDs would fail with error: no profile can be merged.
This is because raw profiles could have unaligned headers when emitting binary
IDs. This means padding should be emitted after binary IDs are emitted to
ensure everything else is aligned. This patch accounts for that padding in
__llvm_write_binary_ids.

Differential Revision: https://reviews.llvm.org/D110188
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPlatformLinux.c (diff)
Commit c22329972f02f9d51e2f9ea54d9075a4a808ffde by Raphael Isemann
[lldb] Add a C language REPL to test LLDB's REPL infrastructure

LLDB has a bunch of code that implements REPL support, but all that code is
unreachable as no language in master currently has an implemented REPL backend.
The only REPL that exists is in the downstream Swift fork. All patches for this
generic REPL code therefore also only have tests downstream which is clearly not
a good situation.

This patch implements a basic C language REPL on top of LLDB's REPL framework.
Beside implementing the REPL interface and hooking it up into the plugin
manager, the only other small part of this patch is making the `--language` flag
of the expression command compatible with the `--repl` flag. The `--repl` flag
uses the value of `--language` to see which REPL should be started, but right
now the `--language` flag is only available in OptionGroups 1 and 2, but not in
OptionGroup 3 where the `--repl` flag is declared.

The REPL currently can currently only start if a running target exists. I'll add
the 'create and run a dummy executable' logic from Swift (which is requires when
doing `lldb --repl`) when I have time to translate all this logic to something
that will work with Clang.

I should point out that the REPL currently uses the C expression parser's
approach to persistent variables where only result variables and the ones
starting with a '$' are transferred between expressions. I'll fix that in a
follow up patch. Also the REPL currently doesn't work in a non-interactive
terminal. This seems to be fixed in the Swift fork, so I assume one of our many
REPL downstream changes addresses the issue.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87281
The file was addedlldb/test/API/repl/clang/Makefile
The file was addedlldb/source/Plugins/REPL/CMakeLists.txt
The file was addedlldb/test/API/repl/clang/TestClangREPL.py
The file was addedlldb/test/API/repl/clang/main.c
The file was addedlldb/source/Plugins/REPL/Clang/CMakeLists.txt
The file was modifiedlldb/source/Commands/Options.td (diff)
The file was addedlldb/source/Plugins/REPL/Clang/ClangREPL.cpp
The file was modifiedlldb/source/Plugins/CMakeLists.txt (diff)
The file was addedlldb/source/Plugins/REPL/Clang/ClangREPL.h
Commit 2f519825ba56cc2377ef9fbf1514944215ed9d0d by tlively
[WebAssembly] Add prototype relaxed SIMD fma/fms instructions

Add experimental clang builtins, LLVM intrinsics, and backend definitions for
the new {f32x4,f64x2}.{fma,fms} instructions in the relaxed SIMD proposal:
https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md.
Do not allow these instructions to be selected without explicit user opt-in.

Differential Revision: https://reviews.llvm.org/D110295
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td (diff)
The file was modifiedclang/test/CodeGen/builtins-wasm.c (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-intrinsics.ll (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td (diff)
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s (diff)
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def (diff)
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp (diff)
Commit fa456505b80b0cf83647a1b26713e4d3b38eccc2 by mgorny
[lldb] [gdb-remote] Refactor getting remote regs to use local vector

Refactor remote register getters to collect them into a local
std::vector rather than adding them straight into DynamicRegisterInfo.
The purpose of this change is to lay groundwork for switching value_regs
and invalidate_regs to use local LLDB register numbers rather than
remote numbers.

Differential Revision: https://reviews.llvm.org/D110025
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (diff)
Commit cc3c788ad23636d16f1db2ae859315628783b0e8 by mgorny
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs

Switch the gdb-remote client logic to use local (LLDB) register numbers
in value_regs/invalidate_regs rather than remote regnos. This involves
translating regnos received from lldb-server.

Differential Revision: https://reviews.llvm.org/D110027
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (diff)
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp (diff)
Commit 59337263ab45d7657ee901eb5525a21967c46265 by Yuanfang Chen
Revert "Diagnose -Wunused-value based on CFG reachability"

This reverts commit cbbf2e8c8ae7730ff0121f4868de4a7d188feb65.
It seems causing diagnoses in SFINAE context.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/test/Sema/sizeless-1.c (diff)
The file was modifiedclang/test/CXX/drs/dr7xx.cpp (diff)
The file was modifiedclang/test/Sema/i-c-e.c (diff)
The file was modifiedclang/test/Sema/warn-unused-value.c (diff)
The file was modifiedclang/test/SemaCXX/warn-comma-operator.cpp (diff)
The file was modifiedclang/test/PCH/cxx-explicit-specifier.cpp (diff)
The file was modifiedclang/test/SemaTemplate/derived.cpp (diff)
The file was modifiedclang/test/CodeCompletion/pragma-macro-token-caching.c (diff)
The file was modifiedclang/test/Parser/objc-try-catch-1.m (diff)
The file was modifiedclang/test/Parser/objcxx11-attributes.mm (diff)
The file was modifiedclang/test/Parser/cxx0x-ambig.cpp (diff)
The file was modifiedclang/test/CXX/drs/dr20xx.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/test/Sema/vla-2.c (diff)
The file was modifiedclang/test/SemaCXX/expression-traits.cpp (diff)
The file was modifiedclang/test/SemaCXX/vector.cpp (diff)
The file was modifiedclang/test/Sema/exprs.c (diff)
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp (diff)
The file was modifiedclang/test/Sema/const-eval.c (diff)
The file was modifiedclang/test/Analysis/dead-stores.c (diff)
The file was modifiedclang/test/SemaCXX/overloaded-operator.cpp (diff)
The file was modifiedclang/test/SemaCXX/warn-unused-value.cpp (diff)
The file was modifiedclang/test/SemaCXX/sizeless-1.cpp (diff)
The file was modifiedclang/test/Sema/switch-1.c (diff)
The file was modifiedclang/test/Parser/objc-messaging-1.m (diff)
The file was modifiedclang/lib/Sema/SemaStmt.cpp (diff)
The file was modifiedclang/test/CXX/basic/basic.link/p8.cpp (diff)
The file was modifiedclang/test/Sema/warn-type-safety.c (diff)
The file was modifiedclang/test/SemaTemplate/lambda-capture-pack.cpp (diff)
The file was modifiedclang/test/SemaCXX/attr-annotate.cpp (diff)
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp (diff)
The file was modifiedclang/test/Parser/cxx1z-init-statement.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/test/Parser/cxx-ambig-decl-expr.cpp (diff)
The file was modifiedclang/test/Frontend/fixed_point_crash.c (diff)
The file was modifiedclang/test/SemaCXX/matrix-type-operators.cpp (diff)
The file was modifiedclang/test/CXX/drs/dr14xx.cpp (diff)
The file was modifiedclang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp (diff)
The file was modifiedclang/test/SemaCXX/constant-expression.cpp (diff)
The file was modifiedclang/test/SemaCXX/builtin-constant-p.cpp (diff)
Commit 74ba4b769ad9a5d7ba381ebc80fa8ced7d658451 by spatel
[x86] move combiner state check into convertIntLogicToFPLogic(); NFC

This function can be adapted to solve bugs like PR51245,
but it could require differentiating the combiner timing
between the existing and new transforms.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 5188e2c9ce1fb33600270243bbc32b4b108f1019 by spatel
[x86] add AVX512 run for fcmp+logic ops; NFC

Suggested in D110342
The file was modifiedllvm/test/CodeGen/X86/fcmp-logic.ll (diff)
Commit 19734ae6f05498a75d4bb3960be06f5d704f8528 by craig.topper
[RISCV] Add more tests for (and (srl x, C2), C1) that can be improved by using a pair of shifts. NFC

These tests have C1 as a shifted mask having C2 leading zeros and some
number of trailing zeros, C3. We can select this as
(slli (srli x, C2+C3), C3) or (slli (srliw x, C2+C3), C3).
The file was addedllvm/test/CodeGen/RISCV/shift-and.ll
Commit 4a69551d663e42453c3ad5ab799326fe2ddc9657 by craig.topper
[RISCV] Add more isel optimizations for (and (shr x, c2), c1).

Turn (and (shr x, c2), c1) -> (slli (srli x, c2+c3), c3) if c1 is a
shifted mask with c2 leading zeros and c3 trailing zeros.

When the leading zeros is C2+32 we can use SRLIW in place of SRLI.
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/shift-and.ll (diff)
Commit 52272f294ffc28691ec3d77582c3678273d25411 by david.green
[AArch64] Update some sve-fixed-length test checks.

Some of these test show very poor code generation. Updating the tests
to make the tests more maintainable and prevent problems from being
hidden behind badly written test checks. Also in some of them the check
lines were using incorrect prefixes.

These are not-quite auto-generated. They are generated with the normal
update scripts and then uninteresting checks are removed, which at least
makes the test _more_ maintainable without materially changing what they
are testing.

I have otherwise attempted to not alter what is tested.
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-select.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-vselect.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-vselect.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-float-compares.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-fp-extend-trunc.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-insert-vector-elt.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-masked-stores.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-vector-shuffle.ll (diff)
Commit a44ab1702539c9ef3aea292e23cfbff17897bdbd by mydeveloperday
[clang-format] Add Left/Right Const fixer capability

Developers these days seem to argue over east vs west const like they used to argue over tabs vs whitespace or the various bracing style. These previous arguments were mainly eliminated with tools like `clang-format` that allowed those rules to become part of your style guide. Anyone who has been using clang-format in a large team over the last couple of years knows that we don't have those religious arguments any more, and code reviews are more productive.

https://www.youtube.com/watch?v=fv--IKZFVO8
https://mariusbancila.ro/blog/2018/11/23/join-the-east-const-revolution/
https://www.youtube.com/watch?v=z6s6bacI424

The purpose of this revision is to try to do the same for the East/West const discussion. Move the debate into the style guide and leave it there!

In addition to the new `ConstStyle: Right` or `ConstStyle: Left` there is an additional command-line argument `--const-style=left/right` which would allow an individual developer to switch the source back and forth to their own style for editing, and back to the committed style before commit. (you could imagine an IDE might offer such a switch)

The revision works by implementing a separate pass of the Annotated lines much like the SortIncludes and then create replacements for constant type declarations.

Differential Revision: https://reviews.llvm.org/D69764
The file was addedclang/unittests/Format/QualifierFixerTest.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp (diff)
The file was modifiedclang/docs/ClangFormatStyleOptions.rst (diff)
The file was modifiedclang/include/clang/Format/Format.h (diff)
The file was modifiedclang/lib/Format/Format.cpp (diff)
The file was modifiedclang/tools/clang-format/ClangFormat.cpp (diff)
The file was modifiedclang/lib/Format/CMakeLists.txt (diff)
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/docs/tools/dump_format_style.py (diff)
The file was addedclang/lib/Format/QualifierAlignmentFixer.h
The file was addedclang/lib/Format/QualifierAlignmentFixer.cpp
The file was modifiedclang/unittests/Format/CMakeLists.txt (diff)
Commit 1aed7fcf09ee11443c3e05f2ec3bd62a946dfdd9 by llvmgnsyncbot
[gn build] Port a44ab1702539
The file was modifiedllvm/utils/gn/secondary/clang/unittests/Format/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/clang/lib/Format/BUILD.gn (diff)
Commit 0bb767e7db4401fc578f1be55db1d4038921d94b by i
[InlineAdvisor] Use one single quote
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp (diff)
Commit 767b328e506ef069ecbb89b7cc9e2da7f8f84c6c by Stefan Gränitz
[ORC] Minor renaming and typo fixes (NFC)

Two typos, one unsused include and some leftovers from the TargetProcessControl -> ExecutorProcessControl renaming

Reviewed By: xgupta

Differential Revision: https://reviews.llvm.org/D110260
The file was removedllvm/examples/OrcV2Examples/LLJITWithTargetProcessControl/LLJITWithTargetProcessControl.cpp
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt (diff)
The file was addedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt
The file was addedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp
The file was modifiedclang/docs/ClangFormattedStatus.rst (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp (diff)
The file was removedllvm/examples/OrcV2Examples/LLJITWithTargetProcessControl/CMakeLists.txt
Commit 4450cf985f0cfc94f8621261208f583d721bd693 by thakis
[llvm] Replace tab with spaces in one test

Also use just one space after comma. Now grepping for ', offset '
in llvm/test actually finds the test for `offset`.

No behavior change.
The file was modifiedllvm/test/MC/X86/pr32530.s (diff)
Commit 3fa43da7a3b46169b731dfca2bf3d41e85d3769d by thakis
[llvm] Fix a copy-pasto

We should use IMAGE_REL_I386_SECREL in the i386 section of this file.

IMAGE_REL_I386_SECREL and IMAGE_REL_AMD64_SECREL have the same
numeric value 0xB, so this doesn't change behavior.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp (diff)
Commit 1286bbc85f421dbdcab430674783bde17b15ba0d by Stefan Gränitz
[ORC][examples] Export exectuable symbols explicitly in LLJITWithExecutorProcessControl

Functions in static code that should be callable from JITed code must be exported. For dynamic libraries extern functions are exported by default. For exectuables, linkers usually strip them away unless we explicitly ask for keeping them.

Reviewed By: xgupta

Differential Revision: https://reviews.llvm.org/D110345
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt (diff)
Commit 221856f5cd13a877543ea6c5418330c1ee7fd715 by 2998727+wrengr
[mlir][sparse] Moved a conditional from the RT library to the generated MLIR.

When generating code to add an element to SparseTensorCOO (e.g., when doing dense=>sparse conversion), we used to check for nonzero values on the runtime side, whereas now we generate MLIR code to do that check.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D110121
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp (diff)
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp (diff)
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp (diff)
Commit fbaf36721783c3bcbd45f81294e6980eaef165e4 by augusto2112
[lldb] Show fix-it applied even if expression didn't evaluate succesfully

If we applied a fix-it before evaluating an expression and that
expression didn't evaluate correctly, we should still tell users about
the fix-it we applied since that may be the reason why it didn't work
correctly.

Differential Revision: https://reviews.llvm.org/D109908
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp (diff)
The file was modifiedlldb/test/API/commands/expression/fixits/main.cpp (diff)
The file was modifiedlldb/test/API/commands/expression/fixits/TestFixIts.py (diff)
Commit f6ecea1a35758bbb504bc8d6f5dccf353ea1355b by pklausler
[flang] Represent (parentheses around derived types)

The strongly typed expression representation classes supported
a representation of parentheses only around intrinsic types
with specific kinds.  Parentheses around derived type variables
must also be preserved so that expressions may be distinguished
from variables; this distinction matters for actual arguments &
construct associations.

Differential Revision: https://reviews.llvm.org/D110355
The file was modifiedflang/lib/Evaluate/expression.cpp (diff)
The file was modifiedflang/lib/Evaluate/tools.cpp (diff)
The file was modifiedflang/include/flang/Evaluate/expression.h (diff)
The file was addedflang/test/Evaluate/expr01.f90
Commit 07e7cb9433daa80e7a8b418cb334c663abe68202 by llvm-project
[Polly] Remove -polly-opt-fusion option.

The name of the option is misleading and has been renamed by isl to
"serialize-sccs". Instead of also renaming the option, remove it.
The option is still accessible using

    -polly-isl-arg=--no-schedule-serialize-sccs
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp (diff)
The file was modifiedpolly/test/ScheduleOptimizer/tile_after_fusion.ll (diff)
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp (diff)
The file was modifiedpolly/test/ScheduleOptimizer/computeout.ll (diff)
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp (diff)
Commit c7b1279a38286194b2f781c821e6eeaa6dd010cf by Duncan P. N. Exon Smith
Support: Add closing namespace comment in raw_ostream_test.cpp, NFC

The closing namespace comment prevents clang-format from dropping a
blank line after the final test. Also add in a blank line (which
simplifies merging/rebasing/etc. WIP patches).
The file was modifiedllvm/unittests/Support/raw_ostream_test.cpp (diff)
Commit c7bcd72a38bcf99e03e4651ed5204d1a1f2bf695 by phosek
Revert "[Polly] Implement user-directed loop distribution/fission."

This reverts commit 52c30adc7dfe6334b71adf256d81f70e7b976143 which
breaks the build when NDEBUG is defined.
The file was removedpolly/test/ScheduleOptimizer/ManualOptimization/distribute_illegal_pragmaloc.ll
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp (diff)
The file was removedpolly/test/ScheduleOptimizer/ManualOptimization/distribute_heuristic.ll
The file was modifiedpolly/include/polly/ManualOptimizer.h (diff)
The file was modifiedpolly/lib/Transform/ManualOptimizer.cpp (diff)
The file was modifiedpolly/lib/Transform/ScheduleTreeTransform.cpp (diff)
The file was modifiedpolly/include/polly/DependenceInfo.h (diff)
The file was removedpolly/test/ScheduleOptimizer/ManualOptimization/distribute_illegal_looploc.ll
The file was modifiedpolly/lib/Analysis/DependenceInfo.cpp (diff)
The file was modifiedpolly/include/polly/ScheduleTreeTransform.h (diff)
Commit 5fcde57b73fbc068c51f55a80894a6ef208d4afd by mydeveloperday
[clang-format] NFC ensure Penality variable is passed back with Fixes

Fix set but not used warning
The file was modifiedclang/lib/Format/QualifierAlignmentFixer.cpp (diff)
Commit d75fb1ee794e94a011e88739df84c359c987a65b by davg
[clangd] Support `#pragma mark` in the outline

Xcode uses `#pragma mark -` to draw a divider in the outline view
and `#pragma mark Note` to add `Note` in the outline view. For more
information, see https://nshipster.com/pragma/.

Since the LSP spec doesn't contain dividers for the symbol outline,
instead we treat `#pragma mark -` as a group with children - the
decls that come after it, implicitly terminating when the symbol's
parent ends.

The following code:

```
@implementation MyClass

- (id)init {}

- (int)foo;
@end
```

Would give an outline like

```
MyClass
        > Overrides
                    > init
        > Public Accessors
                    > foo
```

Differential Revision: https://reviews.llvm.org/D105904
The file was modifiedclang-tools-extra/clangd/ParsedAST.h (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.h (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ParsedASTTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/SourceCode.cpp (diff)
The file was modifiedclang-tools-extra/clangd/CollectMacros.h (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
The file was modifiedclang-tools-extra/clangd/SourceCode.h (diff)
The file was modifiedclang-tools-extra/clangd/FindSymbols.cpp (diff)
The file was modifiedclang-tools-extra/clangd/CollectMacros.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/FindSymbolsTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ParsedAST.cpp (diff)
The file was modifiedclang/include/clang/Lex/PPCallbacks.h (diff)
Commit 093245ed9ee495146b3478447473ad21ae237cb1 by phosek
[CMake] Pass llvm-readelf to CMake external builds

This matches other LLVM binary tools.

Differential Revision: https://reviews.llvm.org/D110313
The file was modifiedllvm/cmake/modules/LLVMExternalProjectUtils.cmake (diff)
Commit 8811227a0c0ac398857988b4fce0fb4dc699468b by craig.topper
[RISCV] Add more tests for (and (shl x, C2), C1) that can be improved by using a pair of shifts. NFC

These tests have C1 as a shifted mask having no leading zeros and
C3 trailing zeros. If C3 is more than C2, we can select this as
(slli (srli x, C3-C2), C3).
The file was modifiedllvm/test/CodeGen/RISCV/shift-and.ll (diff)
Commit 70f50114f37e86bd4869a75b1a8313440bd55780 by craig.topper
[RISCV] Add another isel optimization for (and (shl x, c2), c1)

Turn (and (shl x, c2), c1) -> (slli (srli x, c3-c2), c3) if c1 is a
shifted mask with no leading zeros and c3 trailing zeros where c3
is greater than c2.
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/shift-and.ll (diff)
Commit 2875d3d484bb82dcd7f44bccafda8a52aacc328d by arsenm2
RegAllocGreedy: Remove an unhelpful auto, and don't use a reference
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp (diff)
Commit d83ca624a1d52b600ddbd8bfcbb3d5d7c6003af7 by jhuber6
[OpenMP] Fix data-race in new device RTL

This patch fixes a data-race observed when using the new device runtime
library. The Internal control variable for the parallel level is read in
the `__kmpc_parallel_51` function while it could potentially be written
by other threads. This causes data corruption and will cause
nondetermistic behaviour in the runtime. This patch fixes this by adding
an explicit synchronization before the region starts.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D110366
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Parallelism.cpp (diff)
Commit 953ddded1aa2b459a939e0f1649691c9086ba416 by tedwood
[lldb] Handle malformed qfThreadInfo reply

If the remote gdbserver's qfThreadInfo reply has a trailing comma,
GDBRemoteCommunicationClient::GetCurrentProcessAndThreadIDs will return
an empty vector of thread ids. This will cause lldb to recurse through
three functions trying to get the list of threads, until it blows its
stack and crashes.

A trailing comma is a malformed response, but it shouldn't cause lldb to
crash. This patch will return the tids received before the malformed
response.

Reviewed By: clayborg, labath

Differential Revision: https://reviews.llvm.org/D109937
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (diff)
The file was addedlldb/test/API/functionalities/gdb_remote_client/TestThreadInfoTrailingComma.py
Commit 80b92db02c5aec4e92b2df1492e8268a3239de26 by mcgrathr
[profile][fuchsia] Don't include extra NUL in log messages

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D110361
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c (diff)
Commit 1443ba6163d66743ff9f9d28b0505fca159b824c by Vang.Thao
[AMDGPU] Propagate defining src reg for AGPR to AGPR Copys

On targets that do not support AGPR to AGPR copying directly, try to find the
defining accvgpr_write and propagate its source vgpr register to the copies
before register allocation so the source vgpr register does not get clobbered.

The postrapseudos pass also attempt to propagate the defining accvgpr_write but
if the register to propagate is clobbered, it will give up and create new
temporary vgpr registers instead.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D108830
The file was addedllvm/test/CodeGen/AMDGPU/agpr-to-agpr-copy.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/GCNPreRAOptimizations.cpp (diff)
Commit a6406ce18cb6d42265ce854f133545e049dc0d05 by Louis Dionne
[libc++][NFC] Refactor the std::reverse_view tests

Mostly, remove the global assumption that all ranges have size 8.
I should have called this out during the initial review.
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/size.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/ctor.view.pass.cpp (diff)
The file was removedlibcxx/test/std/ranges/range.adaptors/range.reverse/ctad.compile.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/types.h (diff)
The file was addedlibcxx/test/std/ranges/range.adaptors/range.reverse/ctad.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/begin.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/ctor.default.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/end.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.reverse/base.pass.cpp (diff)