Changes

Summary

  1. [update_llc_test_checks] Baseline test for D100027 (details)
  2. [update_llc_test_checks.py] Fix MIPS ASM regex for functions with EH (details)
  3. Fix incorrect GEP bitwidth in areNonOverlapSameBaseLoadAndStore() (details)
  4. [UpdateTestChecks][NFC] Drop a python2 workaround (details)
  5. Drop REQUIRES: arm-registered-target from an IR-only test (details)
  6. [NFC] Add a comment to member-function-pointer-calls.cpp (details)
  7. [NFC][clang] Add a CHECK lines to tests checking offsetof-like expressions (details)
  8. [InstCombine][ConstantFold] Baseline tests for ptrtoint(gep null, x) (details)
  9. [ConstantFolding] Fold ptrtoint(gep i8 null, x) -> x (details)
  10. [InstCombine] Fold ptrtoint(gep i8 null, x) -> x (details)
  11. [llvm-objdump] Fix -R display and support ET_EXEC (details)
  12. Diagnose -Wunused-value based on CFG reachability (details)
  13. [CostModel][X86] Add SSE2/AVX1/AVX512BW test coverage for i16 interleaved load/store (details)
  14. [TargetLibraryInfo] Pick new/delete calls by target (details)
  15. Add salvageDebugInfo support for truncating/extending ptr/int conversions. (details)
  16. Improve the effectiveness of ADCE's debug info salvaging (details)
  17. Improve the effectiveness of BDCE's debug info salvaging (details)
  18. [libc][NFC] Make strchr and strrchr more consistent (details)
  19. [MCJIT] Mark test-global-ctors as UNSUPPORTED on Darwin, rather than XFAIL. (details)
  20. [llvm-jitlink] Add a -slab-page-size option to override process page size. (details)
  21. DebugInfo: Use sugared function type when emitting function declarations for call sites (details)
  22. [MSP430][Clang] Remove support for -mmcu=msp430 (details)
  23. [Polly] Check the properties of accesses to operands of a matrix-matrix (details)
  24. [libc] Add FE_DFL_ENV and handle it in fesetenv. (details)
  25. [NFC][sanitizer] Clang-format some code (details)
  26. [CUDA] Move CUDA SDK include path further down the include search path. (details)
  27. Revert "Simplify handling of builtin with inline redefinition" (details)
  28. [docs ]Fix indentation (details)
  29. [InstCombine] add/move tests for shl with binop; NFC (details)
  30. Revert "Add support for `NOLINTBEGIN` ... `NOLINTEND` comments" (details)
  31. [llvm][profile] Add padding after binary IDs (details)
  32. Simplify handling of builtin with inline redefinition (details)
  33. [llvm-profgen] Strip context to support non-CS profile generation for hybrid sample (details)
  34. Add profile count. Regenerate check lines. NFC (details)
  35. Revert "Improve the effectiveness of BDCE's debug info salvaging" (details)
Commit ee3109b044a2bb727b91df53f99483cfe7593a72 by Alexander.Richardson
[update_llc_test_checks] Baseline test for D100027

Show that we fail to generate CHECK lines for MIPS64 functions with EH.

Differential Revision: https://reviews.llvm.org/D110408
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips64_eh.ll
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips64_eh.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/mips64_eh.test
Commit 547e5e4ae613cf5ae3727abef84d5ac0334d9987 by Alexander.Richardson
[update_llc_test_checks.py] Fix MIPS ASM regex for functions with EH

On MIPS, functions with exception handling code emits an additional
temporary label at the start of the function (due to UseAssignmentForEHBegin):

    _Z8do_catchv:                           # @_Z8do_catchv
    .Ltmp3:
    .set .Lfunc_begin0, .Ltmp3
    .cfi_startproc
    .cfi_personality 128, DW.ref.__gxx_personality_v0
    .cfi_lsda 0, .Lexception0
    .frame $c11,48,$c17
    .mask 0x00000000,0
    .fmask 0x00000000,0
    .set noreorder
    .set nomacro
    .set noat
    # %bb.0:                                # %entry

The `[^:]*` regex was terminating the search after .Ltmp<N>: and therefore
not detecting functions with exception handling.

Reviewed By: atanasyan, MaskRay

Differential Revision: https://reviews.llvm.org/D100027
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips64_eh.ll.expected
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/mips64_eh.ll
Commit 3c51b9e270bac26fdec1b06ae8dd72960a2353a3 by Alexander.Richardson
Fix incorrect GEP bitwidth in areNonOverlapSameBaseLoadAndStore()

When using a datalayout that has pointer index width != pointer size this
code triggers an assertion in Value::stripAndAccumulateConstantOffsets().
I encountered this this while compiling FreeBSD for CHERI-RISC-V.
Also update LoadsTest.cpp to use a DataLayout with index width != pointer
width to ensure this case is tested.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D110406
The file was modifiedllvm/lib/Analysis/Loads.cpp
The file was modifiedllvm/unittests/Analysis/LoadsTest.cpp
Commit a28177035b16e8884107be686a805f82e8f35840 by Alexander.Richardson
[UpdateTestChecks][NFC] Drop a python2 workaround
The file was modifiedllvm/utils/UpdateTestChecks/common.py
Commit d5631d49d070116ba2e23baad1ecf5f4cc08e6d1 by Alexander.Richardson
Drop REQUIRES: arm-registered-target from an IR-only test

This works just fine even if the Arm backend is not built.
The file was modifiedclang/test/CodeGen/struct-init.c
Commit 90179f2323ac4ca0ed28ee94b9a61b565c1b61b6 by Alexander.Richardson
[NFC] Add a comment to member-function-pointer-calls.cpp

Looking at this test I did not see why MinGW was using a different command
line until I looked at the git history. Add a comment explaining what this
RUN line is actually testing. Also add two more RUN lines to show that
indirectly passed member pointers don't inhibit the optimization.
The file was modifiedclang/test/CodeGenCXX/member-function-pointer-calls.cpp
Commit a18181931f991b04caea297e723db415756f09a0 by Alexander.Richardson
[NFC][clang] Add a CHECK lines to tests checking offsetof-like expressions

I am looking at constant-folding changes that could affect these tests, so
check that it emits the expected global value instead of just checking
that it doesn't crash.
The file was modifiedclang/test/CodeGen/2005-01-02-ConstantInits.c
The file was modifiedclang/test/CodeGenCXX/2005-01-03-StaticInitializers.cpp
The file was modifiedclang/test/CodeGenCXX/2008-05-07-CrazyOffsetOf.cpp
Commit fc0051011eece1448e8d7f5a478acde5b57e1887 by Alexander.Richardson
[InstCombine][ConstantFold] Baseline tests for ptrtoint(gep null, x)

Differential Revision: https://reviews.llvm.org/D110244
The file was addedllvm/test/Transforms/InstCombine/ptrtoint-nullgep.ll
Commit 9049a1c61e9a0cfa5ba41940f2d14597b9e0c431 by Alexander.Richardson
[ConstantFolding] Fold ptrtoint(gep i8 null, x) -> x

I was looking at some missed optimizations in CHERI-enabled targets and
noticed that we weren't removing vtable indirection for calls via known
pointers-to-members. The underlying reason for this is that we represent
pointers-to-function-members as {i8 addrspace(200)*, i64} and generate the
constant offsets using (gep i8 null, <index>). We use a constant GEP here
since inttoptr should be avoided for CHERI capabilities. The pointer-to-member
call uses ptrtoint to extract the index, and due to this missing fold we can't
infer the actual value loaded from the vtable.
This is the initial constant folding change for this pattern, I will add
an InstCombine fold as a follow-up.

We could fold all inbounds GEP to null (and therefore the ptrtoint to
zero) since zero is the only valid offset for an inbounds GEP. If the
offset is not zero, that GEP is poison and therefore returning 0 is valid
(https://alive2.llvm.org/ce/z/Gzb5iH). However, Clang currently generates
inbounds GEPs on NULL for hand-written offsetof() expressions, so this
could lead to miscompilations.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D110245
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was modifiedllvm/test/Transforms/InstCombine/ptrtoint-nullgep.ll
Commit ebb3dc08339cd9d5c4204f0a60742514909d5acd by Alexander.Richardson
[InstCombine] Fold ptrtoint(gep i8 null, x) -> x

This commit is the InstCombine follow-up to the previous constant-folding
change that enables noticeable optimizations for CHERI-enabled targets.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D110247
The file was modifiedllvm/test/Transforms/InstCombine/ptrtoint-nullgep.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit 74a47e54be7992b6ccad36b53b6808a7032607c7 by i
[llvm-objdump] Fix -R display and support ET_EXEC

* Add a newline before `DYNAMIC RELOCATION RECORDS` (see D101796)
* Add the missing `OFFSET TYPE VALUE` line
* Align columns

Note: llvm-readobj/ELFDumper.cpp `loadDynamicTable` has sophisticated PT_DYNAMIC
code which is unavailable in llvm-objdump.

Reviewed By: jhenderson, Higuoxing

Differential Revision: https://reviews.llvm.org/D110595
The file was removedllvm/test/tools/llvm-objdump/X86/elf-dynamic-relocs-rel.test
The file was modifiedlld/test/ELF/got32-i386-pie-rw.s
The file was removedllvm/test/tools/llvm-objdump/X86/elf-dynamic-relocs.test
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was addedllvm/test/tools/llvm-objdump/ELF/dynamic-relocs.test
Commit 27a972a699cd875c7fa9114dc0888015cd724f31 by Yuanfang Chen
Diagnose -Wunused-value based on CFG reachability

(This relands 59337263ab45d7657e and makes sure comma operator
diagnostics are suppressed in a SFINAE context.)

While at it, add the diagnosis message "left operand of comma operator has no effect" (used by GCC) for comma operator.

This also makes Clang diagnose in the constant evaluation context which aligns with GCC/MSVC behavior. (https://godbolt.org/z/7zxb8Tx96)

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D103938
The file was modifiedclang/test/SemaCXX/vector.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/Analysis/dead-stores.c
The file was modifiedclang/test/CodeCompletion/pragma-macro-token-caching.c
The file was modifiedclang/test/Parser/cxx-ambig-decl-expr.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/Sema/i-c-e.c
The file was modifiedclang/test/Sema/warn-type-safety.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp
The file was modifiedclang/test/Frontend/fixed_point_crash.c
The file was modifiedclang/test/Parser/objc-try-catch-1.m
The file was modifiedclang/test/Parser/objcxx11-attributes.mm
The file was modifiedclang/test/CXX/basic/basic.link/p8.cpp
The file was modifiedclang/test/CXX/drs/dr20xx.cpp
The file was modifiedclang/test/Sema/exprs.c
The file was modifiedclang/test/SemaCXX/warn-unused-value.cpp
The file was modifiedclang/test/SemaCXX/matrix-type-operators.cpp
The file was modifiedclang/test/SemaCXX/constant-expression.cpp
The file was modifiedclang/test/SemaCXX/attr-annotate.cpp
The file was modifiedclang/test/Sema/sizeless-1.c
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/CXX/drs/dr7xx.cpp
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/test/SemaCXX/sizeless-1.cpp
The file was modifiedclang/test/Parser/cxx1z-init-statement.cpp
The file was modifiedclang/test/CXX/drs/dr14xx.cpp
The file was modifiedclang/test/Sema/warn-unused-value.c
The file was modifiedclang/test/SemaCXX/warn-comma-operator.cpp
The file was modifiedclang/test/Sema/vla-2.c
The file was modifiedclang/test/SemaCXX/builtin-constant-p.cpp
The file was modifiedclang/test/SemaCXX/overloaded-operator.cpp
The file was modifiedclang/test/SemaTemplate/derived.cpp
The file was modifiedclang/test/Parser/objc-messaging-1.m
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
The file was modifiedclang/test/Sema/switch-1.c
The file was modifiedclang/test/SemaTemplate/lambda-capture-pack.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/Parser/cxx0x-ambig.cpp
The file was modifiedclang/test/SemaCXX/expression-traits.cpp
The file was modifiedclang/test/PCH/cxx-explicit-specifier.cpp
Commit bddc04bc4cd5fed35b5fc10955612b6718696a95 by llvm-dev
[CostModel][X86] Add SSE2/AVX1/AVX512BW test coverage for i16 interleaved load/store
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-5.ll
Commit 56e681afcce53d2a6eb1df2724c715bd95a43a25 by paul.robinson
[TargetLibraryInfo] Pick new/delete calls by target

There are two sets of new/delete functions, one with Windows/MSVC
mangling and one with Itanium mangling. Mark one set or the other
as unavailable depending on the target.

Split the test malloc-free-delete.ll into three parts: malloc-free.dll
for the C API tests, new-delete-itanium.ll and new-delete-msvc.ll for
the target-specific new/delete tests.

Differential Revision: https://reviews.llvm.org/D110419
The file was removedllvm/test/Transforms/InstCombine/malloc-free-delete.ll
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
The file was addedllvm/test/Transforms/InstCombine/malloc-free.ll
The file was addedllvm/test/Transforms/InstCombine/new-delete-msvc.ll
The file was addedllvm/test/Transforms/InstCombine/new-delete-itanium.ll
Commit 1b998a5f0cd9a4f278dd2d114845379a0fafa0a5 by Adrian Prantl
Add salvageDebugInfo support for truncating/extending ptr/int conversions.

This patch enables debug info salvaging for truncating/extending ptr
int conversions. The testcase uncovered a bug in adce, which is
addressed separately.

rdar://80227769

Differential Revision: https://reviews.llvm.org/D110461
The file was addedllvm/test/Transforms/Util/salvage-debuginfo.ll
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit 9637b045e6eee71cd34f0f2f80a2ae1ad2a71129 by Adrian Prantl
Improve the effectiveness of ADCE's debug info salvaging

This patch improves the effectiveness of ADCE's debug info salvaging
by processing the instructions in reverse order and delaying
dropAllReferences until after debug info salvaging. This allows
salvaging of entire chains of deleted instructions!

Previously we would remove all references from an instruction, which
would make it impossible to use that instruction to salvage a later
instruction in the instruction stream, because its operands were
already removed.

Differential Revision: https://reviews.llvm.org/D110462
The file was modifiedllvm/test/Transforms/Util/salvage-debuginfo.ll
The file was modifiedllvm/lib/Transforms/Scalar/ADCE.cpp
Commit f6954bf80472cbfc06e39dac75a4a72120c9bd15 by Adrian Prantl
Improve the effectiveness of BDCE's debug info salvaging

This patch improves the effectiveness of BDCE's debug info salvaging
by processing the instructions in reverse order and delaying
dropAllReferences until after debug info salvaging. This allows
salvaging of entire chains of deleted instructions!

Previously we would remove all references from an instruction, which
would make it impossible to use that instruction to salvage a later
instruction in the instruction stream, because its operands were
already removed.

Differential Revision: https://reviews.llvm.org/D110568
The file was modifiedllvm/lib/Transforms/Scalar/BDCE.cpp
The file was modifiedllvm/test/Transforms/Util/salvage-debuginfo.ll
Commit 43c543aab7e3e6d5727097600ef13a352d1fb4e9 by michaelrj
[libc][NFC] Make strchr and strrchr more consistent

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D110581
The file was modifiedlibc/src/string/strchr.cpp
The file was modifiedlibc/src/string/strrchr.cpp
Commit 9e7fdcbafed90e8946ecd4d8b118786b12905595 by Lang Hames
[MCJIT] Mark test-global-ctors as UNSUPPORTED on Darwin, rather than XFAIL.

MachO doesn't have a '.text.startup' -- this is just plain unsupported.
The file was modifiedllvm/test/ExecutionEngine/MCJIT/test-global-ctors.ll
Commit ab5e6e7434ebc67e89332d4401926978c8fb143b by Lang Hames
[llvm-jitlink] Add a -slab-page-size option to override process page size.

The slab allocator is frequently used in -noexec tests where we want a
consistent memory layout. In this context we also want to set the effective
page size, rather than using the page size of the host process, since not all
systems use the same page size. The -slab-page-size option allows us to set
the page size for such tests.

The -slab-page-size option will also be honored in exec mode when using the
slab allocator, but will trigger an error if the requested size is not a
multiple of the actual process page size.

This option was motivated by test failures on a ppc64 bot that was returning
zero from sys::Process::getPageSize(), so it also contains a check for errors
and zero results from that function if the -slab-page-size option is absent.

Existing slab allocator tests will be updated to use this option in a follow-up
commit so that we can point the failing bot at this commit and observe errors
associated with sys::Process::getPageSize().
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
Commit 85f612efeb352e759f120ee183bf31b1fd7e801a by dblaikie
DebugInfo: Use sugared function type when emitting function declarations for call sites

Otherwise we're losing type information for these functions.
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/CodeGen/debug-info-extern-call.c
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
Commit be610932fa068ed2228b0f694ae80c9294f0293f by anton
[MSP430][Clang] Remove support for -mmcu=msp430

The -mmcu= option accepts a generic MCU named "msp430", which sets the
CPU to msp430 and disables hardware multiply support.

The current purpose of accepting this value is to allow -mmcu= to be
used as an alias for -mcpu=, however there are some downsides to doing
this. -mmcu= provides additional features that will interfere
with the expected behavior if the user tries to to use it as an alias
for -mcpu=.

-mmcu=msp430 will conflict with -mhwmult=, since the "msp430" MCU is
defined to have no hardware multiply support, so the user will not be
able to set an explicit hardware multiply version.

-mmcu=msp430 will put "-Tmsp430.ld" on the linker command line, however
TI's support files do not provide a linker script with this name and so
the user would have to explicitly create it.

Differential Revision: https://reviews.llvm.org/D108299
The file was modifiedclang/include/clang/Basic/MSP430Target.def
The file was modifiedclang/test/Driver/msp430-mmcu.c
Commit 113fa82c3ca4d4fc8310a1de3c4ec31343f81542 by gareevroman
[Polly] Check the properties of accesses to operands of a matrix-matrix
multiplication

The following code modifies elements of the array D.

    for (i = 0; i < _PB_NI; i++)
      for (j = 0; j < _PB_NJ; j++)
      {
        for (k = 0; k < _PB_NK; k++)
        {
          double Mul = A[i][k] * B[k][j];
          D[i][j][k] += Mul;
          C[i][j] += Mul;
        }
      }

Nevertheless, the code is recognised as a matrix-matrix multiplication, since
the second and third dimensions of D are accessed with non-zero strides.

This fixes the typo, which was made during the translation to C++ bindings
(https://reviews.llvm.org/D35845).

Reviewed By: Michael Kruse <llvm@meinersbur.de>

Differential Revision: https://reviews.llvm.org/D110491
The file was addedpolly/test/ScheduleOptimizer/pattern-matching-based-opts_15.ll
The file was modifiedpolly/lib/Transform/MatmulOptimizer.cpp
Commit 5c3c716bb1f5b209b42973790fc85ad241e7f86a by sivachandra
[libc] Add FE_DFL_ENV and handle it in fesetenv.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D110611
The file was modifiedlibc/test/src/fenv/getenv_and_setenv_test.cpp
The file was modifiedlibc/test/src/fenv/CMakeLists.txt
The file was modifiedlibc/src/__support/FPUtil/x86_64/FEnvImpl.h
The file was modifiedlibc/src/__support/FPUtil/aarch64/FEnvImpl.h
The file was modifiedlibc/spec/stdc.td
The file was modifiedlibc/config/linux/api.td
Commit bfa50250b6429e9e55f849c07c11ece33e9340cd by Vitaly Buka
[NFC][sanitizer] Clang-format some code
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp
Commit fd582eeffe582665eacac522617a15e17e9872cd by tra
[CUDA] Move CUDA SDK include path further down the include search path.

This allows clang to work on Linux distributions like Debian where
<CUDA-PATH>/include may be a symlink to /usr/include. We only need
`cuda_wrappers` to be present before the standard C++ library headers.
The CUDA SDK headers themselves do not need to be found that early.

This addresses https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=995122
mentioned in post-commit comments on D108247

Differential Revision: https://reviews.llvm.org/D110596
The file was modifiedclang/lib/Driver/ToolChains/Cuda.cpp
The file was modifiedclang/test/Driver/cuda-detect.cu
Commit 0d76d4833dd2815e0b1c786250f474d222f6a0a1 by kda
Revert "Simplify handling of builtin with inline redefinition"

This reverts commit 3d6f49a56995b845c40be5827ded5d1e3f692cec.

Broke bot: https://lab.llvm.org/buildbot/#/builders/5/builds/12360
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was addedclang/test/CodeGen/memcpy-no-nobuiltin-if-not-emitted.c
The file was modifiedclang/test/CodeGen/memcpy-nobuiltin.c
The file was modifiedclang/test/CodeGen/pr9614.c
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was removedclang/test/CodeGen/memcpy-inline-builtin.c
Commit c6edf26f9a283564a5697068c845a8ff03386086 by Akira
[docs ]Fix indentation
The file was modifiedclang/docs/Block-ABI-Apple.rst
Commit 09c575e728e2f24f76ea7f562e61fccaa225d72d by spatel
[InstCombine] add/move tests for shl with binop; NFC
The file was addedllvm/test/Transforms/InstCombine/shl-bo.ll
The file was modifiedllvm/test/Transforms/InstCombine/shift.ll
The file was removedllvm/test/Transforms/InstCombine/pr19420.ll
Commit 9b944c184396ce55a3ad608779cc326ba12c9ee3 by aaron
Revert "Add support for `NOLINTBEGIN` ... `NOLINTEND` comments"

This reverts commit c0687e1984a82925918c874b7bb68ad34c32aed0.

There are testing failures being caught by bots.
See http://45.33.8.238/linux/56886/step_8.txt as an example.
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-specific-end-global.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-end-at-sof.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-typo-in-check-name.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/docs/clang-tidy/index.rst
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-check-names.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/infrastructure/nolint.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-global-end-specific.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-end-without-begin.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-delims.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/Inputs/nolintbeginend/nolint_in_include.inc
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-at-eof.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/Inputs/nolintbeginend/error_in_include.inc
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-without-end.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/infrastructure/nolintnextline.cpp
Commit b9f547e8e51182d32f1912f97a3e53f4899ea6be by leonardchan
[llvm][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 adds padding after each binary ID
to ensure the next binary ID size is 8-byte aligned. This also adds extra
checks to ensure we aren't reading corrupted data when printing binary IDs.

Differential Revision: https://reviews.llvm.org/D110365
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPlatformLinux.c
The file was addedllvm/test/tools/llvm-profdata/misaligned-binary-ids-size.test
The file was addedcompiler-rt/test/profile/Linux/binary-id-padding.c
The file was addedllvm/test/tools/llvm-profdata/insufficient-binary-ids-size.test
The file was addedllvm/test/tools/llvm-profdata/large-binary-id-size.test
The file was modifiedllvm/lib/ProfileData/InstrProfReader.cpp
The file was addedllvm/test/tools/llvm-profdata/binary-ids-padding.test
Commit c3717b6858d32d64514a187ede1a77be8ba4e542 by sguelton
Simplify handling of builtin with inline redefinition

(This is a recommit of 3d6f49a56995b845 that should no longer break validation since
bd379915de38a9af3d65e1).

It is a common practice in glibc header to provide an inline redefinition of an
existing function. It is especially the case for fortified function.

Clang currently has an imperfect approach to the problem, using a combination of
trivially recursive function detection and noinline attribute.

Simplify the logic by suffixing these functions by `.inline` during codegen, so
that they are not recognized as builtin by llvm.

After that patch, clang passes all tests from https://github.com/serge-sans-paille/fortify-test-suite

Differential Revision: https://reviews.llvm.org/D109967
The file was addedclang/test/CodeGen/memcpy-inline-builtin.c
The file was modifiedclang/test/CodeGen/pr9614.c
The file was removedclang/test/CodeGen/memcpy-no-nobuiltin-if-not-emitted.c
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/test/CodeGen/memcpy-nobuiltin.c
Commit a03cf331e1e9dfb43d7cba750296cd3b78e83cf3 by wlei
[llvm-profgen] Strip context to support non-CS profile generation for hybrid sample

Differential Revision: https://reviews.llvm.org/D109769
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-noprobe.test
The file was modifiedllvm/tools/llvm-profgen/PerfReader.cpp
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.h
The file was modifiedllvm/tools/llvm-profgen/llvm-profgen.cpp
The file was modifiedllvm/tools/llvm-profgen/PerfReader.h
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-noprobe.test
Commit 03ce0841daf8386ed6950c73b9a66ddc3fe93e34 by anna
Add profile count. Regenerate check lines. NFC

Function profile counts added to test cases. Regenerated test lines for
loop predication test.
The file was modifiedllvm/test/Transforms/LoopPredication/profitability.ll
Commit abbbc480a152c1afbac215064f22ae07c87ed964 by nikita.ppv
Revert "Improve the effectiveness of BDCE's debug info salvaging"

This reverts commit f6954bf80472cbfc06e39dac75a4a72120c9bd15.

This breaks the test-suite O3 build:

/home/nikic/llvm-test-suite/build-O3/tools/timeit --summary Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o.time /home/nikic/llvm-project/build/bin/clang++  -DNDEBUG  -O3   -w -Werror=date-time -save-stats=obj -save-stats=obj -std=c++11 -MD -MT Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o -MF Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o.d -o Bitcode/Benchmarks/Halide/local_laplacian/CMakeFiles/halide_local_laplacian.dir/local_laplacian.bc.o -c ../Bitcode/Benchmarks/Halide/local_laplacian/local_laplacian.bc
While deleting: i64 %
Use still stuck around after Def is destroyed:  %12620 = mul i64 %12619, <badref>
clang++: /home/nikic/llvm-project/llvm/lib/IR/Value.cpp:103: llvm::Value::~Value(): Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' failed.
The file was modifiedllvm/test/Transforms/Util/salvage-debuginfo.ll
The file was modifiedllvm/lib/Transforms/Scalar/BDCE.cpp