Changes

Summary

  1. [libc++] Add a few _LIBCPP_ASSERTs in __tree (details)
  2. [clang-tidy] Make header-guard check a little looser on comment whitespace (details)
  3. [analyzer] Canonicalize SymIntExpr so the RHS is positive when possible (details)
  4. Fix "the the" typo in documentation and user facing strings (details)
  5. [Driver] Remove -fno-concept-satisfaction-caching (details)
  6. [OpenMP] libomp: cleanup dead code (details)
  7. [OpenMP] libomp: cleanup - remove duplicate check (details)
  8. [clang] Fix Clang release notes (details)
  9. Silence a false positive about an unevaluated expr w/side effects (details)
  10. [AArch64][GlobalISel] Add undef combines to postlegalizer combiner. (details)
  11. [OpenMP] libomp: Add itt notifications to sync dependent tasks. (details)
  12. [RISCV] Add integer min/max intrinsic tests. NFC (details)
  13. [DAGCombiner] Fold (max/min X, X) -> X. (details)
  14. [DAGCombiner] Fold (sext/zext undef) -> 0 and aext(undef) -> undef. (details)
  15. [flang] Fix triple in a couple of driver tests (details)
  16. [SelectionDAG] Constant fold (sext_inreg undef, VT) to 0 instead of undef. (details)
  17. [InstCombine] add scalable vector test for logical select; NFC (details)
  18. [InstCombine] fix typo in test name; NFC (details)
  19. [clangd] Fix inlayhints crash, don't assume functions have FunctionTypeLocs (details)
  20. [mlir][nvvm] Fix support for tf32 data type in mma.sync (details)
  21. [BOLT][CMAKE] Check build target architecture for runtime libs (details)
  22. [AMDGPU] Split FeatureAtomicFaddInsts (details)
  23. No longer accept scoped enumerations in C (details)
  24. [flang][driver] Add missing parentheses in an assert (details)
  25. [x86][scheduler] Add MIR test for 41914 (details)
  26. [libc++] Avoid a Microsoft SAL macro. (details)
  27. Revert "[InstCombine] Remove side effect of replaced constrained intrinsics" (details)
  28. [X86SchedSandyBridge] update cost of COPY to 1 cycle from 0 (details)
  29. DWARFVerifier: Verify CU/TU index overlap issues (details)
  30. [VPlan] Remove dead code to create VPWidenPHIRecipes (NFCI). (details)
  31. Fix debugserver translation check (details)
  32. Pedantically warn about // comments in gnu89 mode (details)
  33. [BOLT] Report per-section hotness in bolt-heatmap. (details)
  34. [clang][ASTImporter][NFC]: Move clang::ImportError into own header. (details)
  35. [X86] Add some test coverage for Issue #55271 (details)
  36. [ORC] Add an ExecutorAddr::toPtr overload for function types. (details)
  37. [SelectionDAGISel] Add back a comment to MergeInputChains handling. NFC (details)
  38. [libcxx] [test] Fix max_size.pass.cpp for other Windows architectures (details)
  39. [libcxxabi] Use the right calling convention for exception destructors on i386 Windows (details)
  40. [libcxx] [test] Extend the UNSUPPORTED lines in strong_order_long_double.verify.cpp for non-x86_64 Windows (details)
  41. [libcxx] [test] Narrow down an XFAIL for clang-cl configurations (details)
  42. [clang][dataflow] Centralize expression skipping logic (details)
  43. [mlir] Fix the names of exported functions (details)
  44. [sanitizer] Correct GetTls for x32 (details)
  45. [ORC] Return ExecutorAddrs rather than JITEvaluatedSymbols from LLJIT::lookup. (details)
  46. [GlobalISel] Re-generate some tests. (details)
  47. Decr return pc mid-stack when picking UnwindPlan row (details)
  48. [mlir:ExecutionEngine] Update use of getAddress now that lookup returns ExecutorAddr (details)
  49. [clang-format] Fix another bug in AlignConsecutiveAssignments (details)
  50. Reimplement `__builtin_dump_struct` in Sema. (details)
  51. [BOLT][DWARF] Add version 5 split dwarf support (details)
  52. [mlir] Add a better error message when failing to parse an attribute (details)
  53. [clang-format][NFC] Add a few regression tests (details)
Commit 990ea3925b7ad07fa4f7bd24398c4338769fdf05 by Louis Dionne
[libc++] Add a few _LIBCPP_ASSERTs in __tree

Several helper functions specify preconditions as comments, but we never
check them. I ran across a bug report (without a reproducer) in this code,
and I thought that having these assertions in place would make it easier
to troubleshoot.

Differential Revision: https://reviews.llvm.org/D124477
The file was modifiedlibcxx/include/__tree
Commit 7cf97d62f40990c2f86f75eb5a1d9cf2bd9de71e by sam.mccall
[clang-tidy] Make header-guard check a little looser on comment whitespace

Currently it rejects "//  FOO_BAR_H" as an endif comment due to the extra space.
A user complained that this is too picky, which seems fair enough.

Differential Revision: https://reviews.llvm.org/D124955
The file was modifiedclang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/HeaderGuard.cpp
Commit f0d6cb4a5cf5723d7ddab2c7dab74f2f62116a6d by balazs.benics
[analyzer] Canonicalize SymIntExpr so the RHS is positive when possible

This PR changes the `SymIntExpr` so the expression that uses a
negative value as `RHS`, for example: `x +/- (-N)`, is modeled as
`x -/+ N` instead.

This avoids producing a very large `RHS` when the symbol is cased to
an unsigned number, and as consequence makes the value more robust in
presence of casts.

Note that this change is not applied if `N` is the lowest negative
value for which negation would not be representable.

Reviewed By: steakhal

Patch By: tomasz-kaminski-sonarsource!

Differential Revision: https://reviews.llvm.org/D124658
The file was modifiedclang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
The file was modifiedclang/test/Analysis/expr-inspection.c
The file was addedclang/test/Analysis/additive-op-on-sym-int-expr.c
Commit 87a55137e2a2a6684a20223494ad46d2fa33aca8 by koraq
Fix "the the" typo in documentation and user facing strings

There are many more instances of this pattern, but I chose to limit this change to .rst files (docs), anything in libcxx/include, and string literals. These have the highest chance of being seen by end users.

Reviewed By: #libc, Mordante, martong, ldionne

Differential Revision: https://reviews.llvm.org/D124708
The file was modifiedllvm/docs/CommandGuide/llvm-profdata.rst
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/docs/analyzer/checkers.rst
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
The file was modifiedlibcxx/include/__iterator/advance.h
The file was modifiedllvm/docs/BugLifeCycle.rst
The file was modifiedllvm/tools/llvm-profdata/llvm-profdata.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/docs/CodingStandards.rst
The file was modifiedclang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp
The file was modifiedclang/test/Analysis/cert/env34-c.c
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was modifiedclang/docs/UndefinedBehaviorSanitizer.rst
The file was modifiedlibcxx/src/filesystem/operations.cpp
The file was modifiedclang/docs/MatrixTypes.rst
The file was modifiedllvm/include/llvm/Analysis/Loads.h
Commit e13c28ec595d99e694cb7e2589e7574dcda628ef by ibiryukov
[Driver] Remove -fno-concept-satisfaction-caching

The flag was added when the C++20 draft did not allow for concept
caching. The final C++20 standard permits the caching, so flag is
redundant. See http://wg21.link/p2104r0.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D125014
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/lib/Sema/SemaConcept.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/SemaTemplate/cxx2a-constraint-caching.cpp
Commit eed0d8515295d83ba6bd608096df820ce329426e by jonathan.l.peyton
[OpenMP] libomp: cleanup dead code

Differential Revision: https://reviews.llvm.org/D123047
The file was modifiedopenmp/runtime/src/kmp.h
Commit 4a64bed2160c6031d2c7c3321d4f88734c00f9bb by jonathan.l.peyton
[OpenMP] libomp: cleanup - remove duplicate check

The identical check remains 20 lines above in the code.

Differential Revision: https://reviews.llvm.org/D123046
The file was modifiedopenmp/runtime/src/kmp_wait_release.h
Commit 1e95d1bee63837cd40e6ea5ecc95eb8854ba8d21 by ibiryukov
[clang] Fix Clang release notes

I have forgotten a space by mistake in the previous commit.
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 199dfb4d0cca0aaa217e79bd2371f96f6336bbc5 by aaron
Silence a false positive about an unevaluated expr w/side effects

If the operand to `sizeof` is an expression of VLA type, the operand is
still evaluated, so we should not issue a diagnostic about ignoring the
side effects in this case, as they're not actually ignored.

Fixes #48010
The file was modifiedclang/test/Sema/warn-unused-value.c
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 87e3646a1f8addc18339a3b1c8bcb480c5339cd7 by Amara Emerson
[AArch64][GlobalISel] Add undef combines to postlegalizer combiner.
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-undef.mir
The file was removedllvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-store-undef.mir
Commit 52d0ef3c00fc0542630fa98a4dfdf7137fb8635f by jonathan.l.peyton
[OpenMP] libomp: Add itt notifications to sync dependent tasks.

Intel Inspector uses itt notifications to analyze code execution, and it
reports race conditions in dependent tasks.
This patch fixes the issue notifying Inspector on tasks dependency
synchronizations.

Differential Revision: https://reviews.llvm.org/D123042
The file was modifiedopenmp/runtime/src/kmp_taskdeps.cpp
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h
Commit be51ddf6b4545122318150795a02d3408942e221 by craig.topper
[RISCV] Add integer min/max intrinsic tests. NFC

Add basic tests and some tests for same operands and all undef
operands inspired by PR55271.

i32 is umin/umax is using signext to match RISC-V ABI. i8/i16 are
using signext/zeroext to match the operation.

Differential Revision: https://reviews.llvm.org/D124948
The file was addedllvm/test/CodeGen/RISCV/min-max.ll
Commit fd13192aa55508e426a9de3aa8959bf639d49d7f by craig.topper
[DAGCombiner] Fold (max/min X, X) -> X.

Differential Revision: https://reviews.llvm.org/D124951
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/RISCV/min-max.ll
Commit 4e2d1a6c180613058766eea0c564154b8a563726 by craig.topper
[DAGCombiner] Fold (sext/zext undef) -> 0 and aext(undef) -> undef.

Differential Revision: https://reviews.llvm.org/D124988
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/RISCV/min-max.ll
Commit bb0aa574e7d66049bcb08c8a17532dadd875bf41 by andrzej.warzynski
[flang] Fix triple in a couple of driver tests

In https://reviews.llvm.org/D124667, I added tests that check the
generated assembly. I verified the assembly on AArch64 and X86_64, but
the PPC Flang buildbot [1] started failing (i.e. the assembly was not
generic enough).

In order to fix this, I'm changing these tests to be only run on
AAarch64 - that's the architecture that most of public Flang buildbots
use.

I'm hoping that this is straightforward enough and am merging it without
a review.

[1] https://lab.llvm.org/buildbot/#/builders/21/builds/40256
The file was modifiedflang/test/Driver/emit-asm-from-llvm-bc.ll
The file was modifiedflang/test/Driver/emit-asm-from-llvm.ll
Commit 084f967370fcd9a2964da0ff09c1970ebcc721c6 by craig.topper
[SelectionDAG] Constant fold (sext_inreg undef, VT) to 0 instead of undef.

The result of sign_extend_inreg needs to have as many sign bits
as requested by the VT argument. The easiest way to guarantee this
is to fold it to 0.

SystemZ test was modified to avoid using undef.

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

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D124696
The file was modifiedllvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/pr55178.ll
Commit 7bad1d281c798929ae1be44b8c8a1e0713151ea9 by spatel
[InstCombine] add scalable vector test for logical select; NFC

D124997 shows that the code is not ready to handle scalable vectors,
so add some more coverage for a potential crashing case.
The file was modifiedllvm/test/Transforms/InstCombine/logical-select.ll
Commit 21c028ac946e3d51a2d3f602a285c650f0475798 by spatel
[InstCombine] fix typo in test name; NFC
The file was modifiedllvm/test/Transforms/InstCombine/logical-select.ll
Commit 6385c039b821c76c215c3ae6202f9e702a01fd92 by sam.mccall
[clangd] Fix inlayhints crash, don't assume functions have FunctionTypeLocs

Fixes https://github.com/clangd/clangd/issues/1140
The file was modifiedclang-tools-extra/clangd/InlayHints.cpp
The file was modifiedclang-tools-extra/clangd/unittests/InlayHintTests.cpp
Commit 22c6e7b277fbe6c65216d8c7a690d53c8122cb42 by cbate
[mlir][nvvm] Fix support for tf32 data type in mma.sync

The NVVM dialect test coverage for all possible type/shape combinations
in the `nvvm.mma.sync` op is mostly complete. However, there were tests
missing for TF32 datatype support. This change adds tests for the one
relevant shape/type combination. This uncovered a small bug in the op
verifier, which this change also fixes.

Differential Revision: https://reviews.llvm.org/D124975
The file was modifiedmlir/test/Dialect/LLVMIR/nvvm.mlir
The file was modifiedmlir/test/Target/LLVMIR/nvvmir.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
Commit aff52d1f08d2bb566192618d59a01aa7dd442088 by aaupov
[BOLT][CMAKE] Check build target architecture for runtime libs

Account for cross-compilation build scenarios (X86 to ARM, Linux
to Windows, etc).

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D124712
The file was modifiedbolt/CMakeLists.txt
Commit 7e71a039667bad3686771e1b69de24ee836b80b1 by Joseph.Nash
[AMDGPU] Split FeatureAtomicFaddInsts

FeatureAtomicFaddInsts is replaced with three more granular features.
Contributors:
Petar Avramovic <Petar.Avramovic@amd.com>

Patch 3/N for upstreaming of AMDGPU gfx11 architecture

Depends on D124537

Reviewed By: foad, #amdgpu, arsenm

Differential Revision: https://reviews.llvm.org/D124538
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.fadd.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp-wrong-subtarget.ll
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
Commit 967137ca3cb7cf38b2fedf0415946ff3ffd0ef50 by aaron
No longer accept scoped enumerations in C

We had a think-o that would allow a user to declare a scoped
enumeration in C language modes "as a C++11 extension". This is a
think-o because there's no way for the user to spell the name of the
enumerators; C does not have '::' for a fully-qualified name. See
commit d0d87b597259a2b74ae5c2825a081c7e336cb1d0 for details on why this
is unintentional for C.

Fixes #42372
The file was modifiedclang/lib/Parse/ParseDecl.cpp
The file was modifiedclang/test/Sema/enum.c
The file was modifiedclang/docs/ReleaseNotes.rst
Commit c12ef70d2b0ac6234feb48e01eb954dd753bb538 by andrzej.warzynski
[flang][driver] Add missing parentheses in an assert

The assert in https://reviews.llvm.org/D124665 was missing parentheses,
which triggered a warning in GCC (verified with GCC 11). As `-Werror` is
on by default in FLang, that triggered build errors, see e.g. [1].

The fix is rather straightforward, so I am sending this without a
review.

[1] https://lab.llvm.org/buildbot/#/builders/160/builds/7016

Differential Revision: https://reviews.llvm.org/D125027
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
Commit 617edfa4811184c3ec027fbc7244a062ef93a62c by ndesaulniers
[x86][scheduler] Add MIR test for 41914

Generated via:
    $ clang -fno-omit-frame-pointer -m32 -mregparm=3 -O2 crash.c -emit-llvm -S
    $ llc -print-before=machine-scheduler -mcpu=sandybridge crash.mir

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D122348
The file was addedllvm/test/CodeGen/X86/scheduler-asm-moves.mir
Commit 5a4f177c949e5ff56bc6af9c0145e2d0c1b29c4d by koraq
[libc++] Avoid a Microsoft SAL macro.

Bug: https://github.com/llvm/llvm-project/issues/55195

Reviewed By: #libc, Mordante

Differential Revision: https://reviews.llvm.org/D124695
The file was modifiedlibcxx/include/__functional/bind_back.h
The file was modifiedlibcxx/include/__iterator/advance.h
The file was modifiedlibcxx/include/__iterator/next.h
The file was modifiedlibcxx/include/__ranges/iota_view.h
The file was modifiedlibcxx/include/__functional/perfect_forward.h
The file was modifiedlibcxx/include/__iterator/prev.h
The file was modifiedlibcxx/test/libcxx/nasty_macros.compile.pass.cpp
Commit e1554ac63a903891843b248d611fa8e9fc75d476 by sepavloff
Revert "[InstCombine] Remove side effect of replaced constrained intrinsics"

This reverts commit 83914ee96fc2d828e1cfb8913f5d156d39150e2c.
The change caused discussion: https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220502/1034841.html
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was removedllvm/test/Transforms/InstCombine/constrained.ll
Commit 18fd09ab64b07c45d0373307e37f7c96b3984183 by ndesaulniers
[X86SchedSandyBridge] update cost of COPY to 1 cycle from 0

To match the cost of other scheduling models. This is expected to
schedule mov instructions around INLINEASM less frequently for the
default machineschedule (pre-RA scheduling).

Suggested by Craig Topper.

Link: https://github.com/llvm/llvm-project/issues/41914

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D122350
The file was modifiedllvm/test/CodeGen/X86/fp-trunc.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmul-fast.ll
The file was modifiedllvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
The file was modifiedllvm/test/CodeGen/X86/fp-load-trunc.ll
The file was modifiedllvm/test/CodeGen/X86/machine-combiner-int.ll
The file was modifiedllvm/test/CodeGen/X86/recip-fastmath.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining.ll
The file was modifiedllvm/test/CodeGen/X86/recip-fastmath2.ll
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath-tune.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fadd-fast.ll
The file was modifiedllvm/test/CodeGen/X86/scheduler-asm-moves.mir
The file was modifiedllvm/test/CodeGen/X86/gather-addresses.ll
The file was modifiedllvm/test/CodeGen/X86/machine-combiner-int-vec.ll
The file was modifiedllvm/lib/Target/X86/X86SchedSandyBridge.td
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath.ll
Commit 0d8cb8b399adcd17e8bf17be7814d030308c8b82 by dblaikie
DWARFVerifier: Verify CU/TU index overlap issues

Discovered in a large object that would need a 64 bit index (but the
cu/tu index format doesn't include a 64 bit offset/length mode in
DWARF64 - a spec bug) but instead binutils dwp overflowed the offsets
causing overlapping regions.
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
The file was addedllvm/test/DebugInfo/X86/debug-cu-index-overlap.s
Commit f9f7aa30f8a06867b7c144f7a748fa3a22df797d by flo
[VPlan] Remove dead code to create VPWidenPHIRecipes (NFCI).

After introducing VPWidenPointerInductionRecipe, VPWidenPHIRecipes
should not be created at this point. Turn check into an assert.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit eb3136f022b3e5061fe790e7886f4bb592d8a1d1 by alexandrecperez
Fix debugserver translation check

Currently, debugserver has a test to check if it was launched in
translation. The intent was to cover the case where an x86_64
debugserver attempts to control an arm64/arm64e process, returning
an error. However, this check also covers the case where users
are attaching to an x86_64 process, exiting out before attempting
to hand off control to the translated debugserver at
`/Library/Apple/usr/libexec/oah/debugserver`.

This diff delays the debugserver translation check until after
determining whether to hand off control to
`/Library/Apple/usr/libexec/oah/debugserver`. Only when the
process is not translated and thus has not been handed off do we
check if the debugserver is translated, erroring out in that case.

Reviewed By: jasonmolenda

Differential Revision: https://reviews.llvm.org/D124814
The file was modifiedlldb/tools/debugserver/source/RNBRemote.cpp
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
The file was modifiedlldb/tools/debugserver/source/DNBDefs.h
Commit f6dff93641b2259623e686eb13a1884b8b9f4a00 by aaron
Pedantically warn about // comments in gnu89 mode

GCC warns with a pedantic warning when -std=gnu89, but Clang would only
diagnose in -std=c89 mode. Clang now matches the GCC behavior in both
modes.

Fixes #18427
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Basic/LangStandards.def
The file was modifiedclang/test/Lexer/c90.c
The file was modifiedclang/test/Sema/gnu89.c
Commit 733dc3e50b2d34ebccaba24ca72ce72b5a3545f6 by rahmanl
[BOLT] Report per-section hotness in bolt-heatmap.

This patch adds a new feature to bolt heatmap to print the hotness of each section in terms of the percentage of samples within that section.

Sample output generated for the clang binary:

Section Name, Begin Address, End Address, Percentage Hotness
.text, 0x1a7b9b0, 0x20a2cc0, 1.4709
.init, 0x20a2cc0, 0x20a2ce1, 0.0001
.fini, 0x20a2ce4, 0x20a2cf2, 0.0000
.text.unlikely, 0x20a2d00, 0x431990c, 0.3061
.text.hot, 0x4319910, 0x4bc6927, 97.2197
.text.startup, 0x4bc6930, 0x4c10c89, 0.0058
.plt, 0x4c10c90, 0x4c12010, 0.9974

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D124412
The file was modifiedbolt/lib/Profile/Heatmap.cpp
The file was modifiedbolt/lib/Profile/DataAggregator.cpp
The file was modifiedbolt/include/bolt/Profile/Heatmap.h
Commit dcb906757ada24edf8da89439c72d015b53f204b by singh.shivamsingh2003
[clang][ASTImporter][NFC]: Move clang::ImportError into own header.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D124774
The file was addedclang/include/clang/AST/ASTImportError.h
The file was modifiedclang/include/clang/AST/ASTImporterSharedState.h
The file was modifiedclang/include/clang/AST/ASTImporter.h
Commit c2a5a87500d92c7c2e76c595f1b0f439b98b0aff by llvm-dev
[X86] Add some test coverage for Issue #55271

We needed something that would delay the creation of the undef until after the rem-by-constant expansion, so I used a SSE shift of undef by zero which will expand to undef.
The file was modifiedllvm/test/CodeGen/X86/combine-srem.ll
The file was modifiedllvm/test/CodeGen/X86/combine-urem.ll
Commit 98616cfc02613d98964588fac6494ec7583c495f by Lang Hames
[ORC] Add an ExecutorAddr::toPtr overload for function types.

In the common case of converting an ExecutorAddr to a function pointer type,
this eliminates the need for the '(*)' boilerplate to explicitly specify a
function pointer. E.g.:

auto *F = A.toPtr<int(*)()>();

can now be written as

auto *F = A.toPtr<int()>();
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp
Commit 5140e0d219be490930810778a6dcc63fbe72eac2 by craig.topper
[SelectionDAGISel] Add back a comment to MergeInputChains handling. NFC

This comment used to exist, but was lost in a refactor over 10 years
ago, but still seems relevant and improves readability.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Commit 448eabd754852b6939ac5c54d8e71b6e3ff9b78a by martin
[libcxx] [test] Fix max_size.pass.cpp for other Windows architectures

All current Windows architectures (i386, x86_64, arm, arm64) get
the full_size() behaviour here. x86_64 (the only one tested in CI
currently) is handled by the first ifdef at the top, but handle
Windows in general on all other architectures later.

Differential Revision: https://reviews.llvm.org/D124989
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
Commit aeb4907ed658ad5538f8cd569facae5beaab2940 by martin
[libcxxabi] Use the right calling convention for exception destructors on i386 Windows

On Windows on i386, C++ member functions use a different calling
convention (`__thiscall`) than the default one for regular functions
(`__cdecl`). (On Windows on architectures other than i386, both calling
convention attributes are no-ops.)

This matches how libstdc++ declares these types.

This fixes the std/thread/futures/futures.{shared,unique}_future/dtor.pass.cpp
tests on i386 mingw.

Differential Revision: https://reviews.llvm.org/D124990
The file was modifiedlibcxxabi/include/__cxxabi_config.h
The file was modifiedlibcxxabi/include/cxxabi.h
The file was modifiedlibcxxabi/src/cxa_exception.cpp
The file was modifiedlibcxxabi/src/cxa_exception.h
Commit 9dfbccf052baa2b5f5658052a1ee3c96ff644b99 by martin
[libcxx] [test] Extend the UNSUPPORTED lines in strong_order_long_double.verify.cpp for non-x86_64 Windows

Differential Revision: https://reviews.llvm.org/D124992
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.alg/strong_order_long_double.verify.cpp
Commit 07c96a3113b23df1a7b176f3c68ac6db27bc332a by martin
[libcxx] [test] Narrow down an XFAIL for clang-cl configurations

This test only fails on x86_64 clang-cl, not for i386.

(The root cause is still not explored, thus the FIXME is still
relevant.)

Differential Revision: https://reviews.llvm.org/D124994
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
Commit 45643cfcc12ea6152fb9516ed24f5adf7469eb4c by li.zhe.hua
[clang][dataflow] Centralize expression skipping logic

A follow-up to 62b2a47 to centralize the logic that skips expressions
that the CFG does not emit. This allows client code to avoid
sprinkling this logic everywhere.

Add redirects in the transfer function to similarly skip such
expressions by forwarding the visit to the sub-expression.

Differential Revision: https://reviews.llvm.org/D124965
The file was modifiedclang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
The file was modifiedclang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
The file was modifiedclang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
The file was modifiedclang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
The file was modifiedclang/include/clang/Analysis/FlowSensitive/Transfer.h
The file was modifiedclang/lib/Analysis/FlowSensitive/Transfer.cpp
The file was modifiedclang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
Commit d4555698f89af373f43dcb4aa1587231496bcd31 by stilis
[mlir] Fix the names of exported functions

The names of the functions that are supposed to be exported do not match the implementations. This is due in part to https://github.com/llvm/llvm-project/commit/cac7aabbd8236bef2909bfc0dbba17644f7aaade.

This change makes the implementations and declarations match and adds a couple missing declarations.

The new names follow the pattern of the existing `verify` functions where the prefix is maintained as `_mlir_ciface_` but the suffix follows the new naming convention.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D124891
The file was modifiedmlir/test/mlir-cpu-runner/sgemm-naive-codegen.mlir
The file was modifiedmlir/test/mlir-cpu-runner/utils.mlir
The file was modifiedmlir/test/mlir-cpu-runner/memref-reinterpret-cast.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/subf.mlir
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-min.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/addi.mlir
The file was modifiedmlir/lib/ExecutionEngine/RunnerUtils.cpp
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-and.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-region.mlir
The file was modifiedmlir/include/mlir/ExecutionEngine/RunnerUtils.h
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir
The file was modifiedmlir/test/mlir-spirv-cpu-runner/double.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-tensor-e2e.mlir
The file was modifiedmlir/test/mlir-cpu-runner/memref-reshape.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/multiple-all-reduce.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/addf.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-xor.mlir
The file was modifiedmlir/test/mlir-cpu-runner/copy.mlir
The file was modifiedmlir/test/Integration/Dialect/Standard/CPU/test_subview.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-hwcf-call.mlir
The file was modifiedmlir/test/mlir-cpu-runner/global-memref.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-one-shot-bufferize.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/time.mlir
The file was modifiedmlir/test/Integration/GPU/ROCM/vector-transferops.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/mulf.mlir
The file was modifiedmlir/test/mlir-spirv-cpu-runner/simple_add.mlir
The file was modifiedmlir/test/Integration/GPU/ROCM/vecadd.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-op.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/two-modules.mlir
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-to-loops.mlir
The file was modifiedmlir/test/Dialect/Linalg/library-calls.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/gpu-to-cubin.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-or.mlir
The file was modifiedmlir/test/mlir-cpu-runner/async.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f16.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/shuffle.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/async.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-dhwcf-call.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-expand-tensor.mlir
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir
The file was modifiedmlir/lib/ExecutionEngine/CRunnerUtils.cpp
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-collapse-tensor.mlir
The file was modifiedmlir/test/mlir-vulkan-runner/addi8.mlir
The file was modifiedmlir/test/mlir-opt/async.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-elementwise.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/all-reduce-max.mlir
The file was modifiedmlir/test/Integration/GPU/ROCM/two-modules.mlir
The file was modifiedmlir/test/mlir-cpu-runner/print.mlir
The file was modifiedmlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f32.mlir
The file was modifiedmlir/test/Integration/GPU/ROCM/gpu-to-hsaco.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
The file was modifiedmlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize.mlir
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-vector-distribute.mlir
The file was modifiedmlir/test/python/execution_engine.py
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir
The file was modifiedmlir/test/mlir-cpu-runner/async-value.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-wcf-call.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir
The file was modifiedmlir/test/mlir-cpu-runner/unranked-memref.mlir
Commit b226894d475b4758ed1da0c23e664b027c89634b by hjl.tools
[sanitizer] Correct GetTls for x32

Since x32 pointer size is 4 bytes, the self pointer offset in TCB:

struct
{
  void *tcb;
  dtv_t *dtv;
  void *self;
  ...

should be 8, not 16.

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

Differential Revision: https://reviews.llvm.org/D125025
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Commit 16dcbb53dc7968a3752661aac731172ebe0faf64 by Lang Hames
[ORC] Return ExecutorAddrs rather than JITEvaluatedSymbols from LLJIT::lookup.

Clients don't care about linkage, and ExecutorAddr is much more ergonomic.
The file was modifiedllvm/examples/HowToUseLLJIT/HowToUseLLJIT.cpp
The file was modifiedllvm/tools/lli/lli.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/LLJITWithCustomObjectLinkingLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/LLJITWithOptimizingIRTransform.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithObjectCache/LLJITWithObjectCache.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithLazyReexports/LLJITWithLazyReexports.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/LLJITWithRemoteDebugging.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/LLJITWithObjectLinkingLayerPlugin.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/LLJITWithGDBRegistrationListener.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITRemovableCode/LLJITRemovableCode.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/LLJITWithThinLTOSummaries.cpp
The file was modifiedclang/lib/Interpreter/IncrementalExecutor.cpp
Commit 586802eb72907f2380e319a08fbe5728807544e3 by Amara Emerson
[GlobalISel] Re-generate some tests.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-undef.mir
Commit b6388e4a0050fa248f774f5dacfa3e566e8daef1 by Jason Molenda
Decr return pc mid-stack when picking UnwindPlan row

When picking the UnwindPlan row to use to backtrace,
off of the zeroth frame, decrement the return pc so
we're in the address range of the call instruction.
If this is a noretrun function call, the instruction
at the "return address" is likely an entirely different
basic block with possibly very different unwind rules,
and this can cause the backtrace to be incorrect.

Differential Revision: https://reviews.llvm.org/D124957
rdar://84651805
The file was modifiedlldb/source/Target/RegisterContextUnwind.cpp
The file was modifiedlldb/include/lldb/Target/RegisterContextUnwind.h
Commit 8bb5b657fec6dc604eeea49e1f26eff4c14084ba by riddleriver
[mlir:ExecutionEngine] Update use of getAddress now that lookup returns ExecutorAddr

This was changed in 16dcbb53dc7968a3752661aac731172ebe0faf64
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp
Commit 8b626a2caa672a174829105ff7749d8d9a080f2a by owenca
[clang-format] Fix another bug in AlignConsecutiveAssignments

The ShouldShiftBeAdded lambda checks if extra space should be
added before the wrapped part of a braced list. If the first
element of the list is wrapped, no extra space should be added.

Fixes #55161.

Differential Revision: https://reviews.llvm.org/D124956
The file was modifiedclang/lib/Format/WhitespaceManager.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit c4f95ef86a224fe730d2219aab90e88a0e7b03d2 by richard
Reimplement `__builtin_dump_struct` in Sema.

Compared to the old implementation:

* In C++, we only recurse into aggregate classes.
* Unnamed bit-fields are not printed.
* Constant evaluation is supported.
* Proper conversion is done when passing arguments through `...`.
* Additional arguments are supported and are injected prior to the
  format string; this directly supports use with `fprintf`, for example.
* An arbitrary callable can be passed rather than only a function
  pointer. In particular, in C++, a function template or overload set is
  acceptable.
* All text generated by Clang is printed via `%s` rather than directly;
  this avoids issues where Clang's pretty-printing output might itself
  contain a `%` character.
* Fields of types that we don't know how to print are printed with a
  `"*%p"` format and passed by address to the print function.
* No return value is produced.

Reviewed By: aaron.ballman, erichkeane, yihanaa

Differential Revision: https://reviews.llvm.org/D124221
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was addedclang/test/CodeGen/builtin-dump-struct.c
The file was addedclang/test/CodeGenCXX/builtin-dump-struct.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was removedclang/test/CodeGen/dump-struct-builtin.c
The file was modifiedclang/include/clang/Basic/Builtins.def
The file was addedclang/test/SemaCXX/builtin-dump-struct.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/builtin-dump-struct.c
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Frontend/FrontendActions.cpp
Commit ba1ac98c62e847551bd7ed7d48d811228f7f4619 by ayermolo
[BOLT][DWARF] Add version 5 split dwarf support

Added support for DWARF5 Split Dwarf.

Reviewed By: maksfb

Differential Revision: https://reviews.llvm.org/D122988
The file was addedbolt/test/X86/dwarf5-df-mono-dualcu.test
The file was modifiedbolt/lib/Core/DebugData.cpp
The file was modifiedbolt/test/X86/debug-fission-single.s
The file was modifiedbolt/include/bolt/Core/DebugData.h
The file was addedbolt/test/X86/Inputs/dwarf4-df-dualcu-main.ll
The file was modifiedbolt/include/bolt/Rewrite/DWARFRewriter.h
The file was addedbolt/test/X86/Inputs/dwarf5-df-dualcu-loclist-main.ll
The file was addedbolt/test/X86/dwarf4-df-dualcu-loclist.test
The file was addedbolt/test/X86/dwarf4-df-dualcu.test
The file was addedbolt/test/X86/Inputs/dwarf4-df-dualcu-helper.ll
The file was addedbolt/test/X86/Inputs/dwarf4-df-dualcu-loclist-main.ll
The file was addedbolt/test/X86/Inputs/dwarf5-df-dualcu-main.ll
The file was addedbolt/test/X86/Inputs/dwarf5-df-mono-main.ll
The file was addedbolt/test/X86/Inputs/dwarf5-df-dualcu-loclist-helper.ll
The file was addedbolt/test/X86/dwarf5-locaddrx.test
The file was modifiedbolt/lib/Core/BinaryContext.cpp
The file was addedbolt/test/X86/dwarf5-df-dualcu.test
The file was addedbolt/test/X86/Inputs/dwarf4-df-dualcu-loclist-helper.ll
The file was modifiedbolt/lib/Rewrite/DWARFRewriter.cpp
The file was addedbolt/test/X86/Inputs/dwarf5-df-dualcu-helper.ll
The file was addedbolt/test/X86/Inputs/dwarf5-df-mono-helper.ll
The file was addedbolt/test/X86/dwarf5-df-dualcu-loclist.test
Commit 6609c1cc5997baa75c45283fd559897334e5d1a2 by riddleriver
[mlir] Add a better error message when failing to parse an attribute

The fallback attribute parse path is parsing a Type attribute, but this results
in a really unintuitive error message: `expected non-function type`, which
doesn't really hint at tall that we were trying to parse an attribute. This
commit fixes this by trying to optionally parse a type, and on failure
emitting an error that we were expecting an attribute.

Differential Revision: https://reviews.llvm.org/D124870
The file was modifiedmlir/test/mlir-tblgen/attr-or-type-format.mlir
The file was modifiedmlir/lib/Parser/AttributeParser.cpp
The file was modifiedflang/test/Fir/invalid-types.fir
The file was modifiedmlir/test/Dialect/SPIRV/IR/composite-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/memory-ops.mlir
The file was modifiedmlir/test/IR/invalid-locations.mlir
The file was modifiedmlir/test/IR/invalid.mlir
Commit e7aed737eb2d8fb2150f38e48d1c3e0108931999 by owenca
[clang-format][NFC] Add a few regression tests
The file was modifiedclang/unittests/Format/FormatTest.cpp