SuccessChanges

Summary

  1. [ArgPromotion] Replace all md uses of promoted values with undef. (details)
  2. [X86] support .nops directive (details)
  3. Fix layering violation Transforms/Utils -> Scalar (details)
  4. [InstSimplify] add tests for min-of-max variants; NFC (details)
  5. [InstSimplify] fold variations of max-of-min with common operand (details)
  6. [flang] Fix bug detecting intrinsic function (details)
  7. [PGO] Enable the extended value profile buckets for mem op sizes. (details)
  8. [llvm-jitlink] Add support for static archives and MachO universal archives. (details)
  9. [AArch64] Add missing isel patterns for fcvtzs/u intrinsic on v1f64. (details)
  10. Fix typo: s/epomymous/eponymous/ NFC (details)
  11. Allow .dSYM's to be directly placed in an alternate directory (details)
  12. [CodeGen][ObjC] Mark calls to objc_unsafeClaimAutoreleasedReturnValue as (details)
Commit 1e392fc44584a4909b4dced02b8386b48963002b by flo
[ArgPromotion] Replace all md uses of promoted values with undef.

Currently, ArgPromotion may leave metadata uses of promoted values,
which will end up in the wrong function, creating invalid IR.

PR33641 fixed this for dead arguments, but it can be also be triggered
arguments with users that are promoted (see the updated test case).

We also have to drop uses to them after promoting them. We need to do
this after dealing with the non-metadata uses, so I also moved the empty
use case to the loop that deals with updating the arguments of the new
function.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D85127
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Commit c6334db577e7049fe4868b1647c9f937f68ff1f5 by caij2003
[X86] support .nops directive

Add support of .nops on X86. This addresses llvm.org/PR45788.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D82826
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was addedllvm/test/MC/X86/x86_64-directive-nops.s
The file was modifiedllvm/lib/MC/MCFragment.cpp
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedllvm/include/llvm/MC/MCStreamer.h
The file was addedllvm/test/MC/X86/x86-directive-nops.s
The file was modifiedllvm/include/llvm/MC/MCObjectStreamer.h
The file was modifiedllvm/lib/MC/MCObjectStreamer.cpp
The file was modifiedllvm/include/llvm/MC/MCAsmBackend.h
The file was addedllvm/test/MC/X86/x86-directive-nops-errors.s
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedllvm/include/llvm/MC/MCFragment.h
Commit 456f38a97199770d4ea563dec8c50eaaf20f0309 by aeubanks
Fix layering violation Transforms/Utils -> Scalar

Introduced in D85063.
The file was modifiedllvm/lib/Transforms/Utils/LoopVersioning.cpp
Commit 7efd9ceb588b5e76e4ce9ae0b8ed45bfc90645cd by spatel
[InstSimplify] add tests for min-of-max variants; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll
Commit 9e5cf6bde5963f14a38117061c7a4df064453088 by spatel
[InstSimplify] fold variations of max-of-min with common operand

https://alive2.llvm.org/ce/z/ZtxpZ3
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll
Commit 0d454e8e087049ae86283e73a25cf8eaad488651 by tkeith
[flang] Fix bug detecting intrinsic function

Don't set the INTRINSIC attribute on a dummy procedure.

Differential Revision: https://reviews.llvm.org/D85136
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/test/Semantics/symbol18.f90
Commit 3e89cbf38e76d0d0ac75fe77d318a5cfeac512f5 by yamauchi
[PGO] Enable the extended value profile buckets for mem op sizes.

Following up D81682 and enable the new, extended value profile buckets for mem
op sizes.

Differential Revision: https://reviews.llvm.org/D83903
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
Commit 777824b49d5d9e1fbc93108107fa6d12a936a2e4 by Lang Hames
[llvm-jitlink] Add support for static archives and MachO universal archives.

Archives can now be specified as input files the same way that object
files are. Archives will always be linked after all objects (regardless
of the relative order of the inputs) but before any dynamic libraries or
process symbols.

This patch also relaxes matching for slice triples in
StaticLibraryDefinitionGenerator in order to support this feature:
Vendors need not match if the source vendor is unknown.
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
Commit dca23ed8952383701a62b778104f4db6f5d4b799 by efriedma
[AArch64] Add missing isel patterns for fcvtzs/u intrinsic on v1f64.

Fixes test-suite compile failure caused by 8dfb5d7.

While I'm in the area, add some more test coverage to related
operations, to make sure we aren't missing any other patterns.
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vcvt.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/fp16_intrinsic_scalar_1op.ll
Commit 7f1556f292ccfd80c4ffa986d5b849f915e5cd82 by jonathan_roelofs
Fix typo: s/epomymous/eponymous/ NFC
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
Commit 7209f83112db4dbe15d8328705f9d2aff0624fbd by daniel_l_sanders
Allow .dSYM's to be directly placed in an alternate directory

Once available in the relevant toolchains this will allow us to implement
LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR after D84127 by directly placing the dSYM
in the desired location instead of emitting next to the output file and moving
it.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D84572
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/test/Driver/darwin-dsymutil.c
The file was modifiedclang/include/clang/Driver/Options.td
Commit 41b1e97b12c1407e40d8e5081bf1f9cf183934b0 by Akira
[CodeGen][ObjC] Mark calls to objc_unsafeClaimAutoreleasedReturnValue as
notail on x86-64

This is needed because the epilogue code inserted before tail calls on
x86-64 breaks the handshake between the caller and callee.

Calls to objc_retainAutoreleasedReturnValue used to have the same
problem, which was fixed in https://reviews.llvm.org/D59656.

rdar://problem/66029552

Differential Revision: https://reviews.llvm.org/D84540
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/lib/CodeGen/TargetInfo.h
The file was modifiedclang/test/CodeGenObjC/arc-unsafeclaim.m