Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions lib/SILOptimizer/Transforms/AssemblyVisionRemarkGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ static llvm::cl::opt<bool> DecllessDebugValueUseSILDebugInfo(
"write SIL test cases for this pass"),
llvm::cl::init(false));

static llvm::cl::opt<bool> DiagnoseCopyDestroyAddr(
"assemblyvisionremarkgen-diagnose-copy-destroy-addr", llvm::cl::Hidden,
llvm::cl::desc(
"Emit opt remarks for copy_addr, destroy_addr instructions"),
llvm::cl::init(true));


//===----------------------------------------------------------------------===//
// Value To Decl Inferrer
//===----------------------------------------------------------------------===//
Expand Down Expand Up @@ -568,6 +575,9 @@ struct AssemblyVisionRemarkGeneratorInstructionVisitor

void AssemblyVisionRemarkGeneratorInstructionVisitor::
visitCopyAddrInst(CopyAddrInst *copy) {
if (!DiagnoseCopyDestroyAddr)
return;

ORE.emit([&]() {
using namespace OptRemark;
SmallVector<Argument, 8> inferredArgs;
Expand Down Expand Up @@ -603,6 +613,9 @@ void AssemblyVisionRemarkGeneratorInstructionVisitor::

void AssemblyVisionRemarkGeneratorInstructionVisitor::
visitDestroyAddrInst(DestroyAddrInst *destroy) {
if (!DiagnoseCopyDestroyAddr)
return;

ORE.emit([&]() {
using namespace OptRemark;
SmallVector<Argument, 8> inferredArgs;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// RUN: %target-swiftc_driver -O -Rpass-missed=sil-assembly-vision-remark-gen -Xfrontend -enable-copy-propagation=requested-passes-only -Xfrontend -enable-lexical-lifetimes=false -Xllvm -sil-disable-pass=FunctionSignatureOpts -emit-sil %s -o /dev/null -Xfrontend -verify
// RUN: %target-swiftc_driver -O -Xllvm -assemblyvisionremarkgen-diagnose-copy-destroy-addr=false -Rpass-missed=sil-assembly-vision-remark-gen -Xfrontend -enable-copy-propagation=requested-passes-only -Xfrontend -enable-lexical-lifetimes=false -Xllvm -sil-disable-pass=FunctionSignatureOpts -emit-sil %s -o /dev/null -Xfrontend -verify

// REQUIRES: optimized_stdlib
// REQUIRES: swift_stdlib_no_asserts
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// RUN: %target-swiftc_driver -O -Rpass-missed=sil-assembly-vision-remark-gen -Xllvm -sil-disable-pass=FunctionSignatureOpts -emit-sil %s -o /dev/null -Xfrontend -verify
// RUN: %target-swiftc_driver -O -Xllvm -assemblyvisionremarkgen-diagnose-copy-destroy-addr=false -Rpass-missed=sil-assembly-vision-remark-gen -Xllvm -sil-disable-pass=FunctionSignatureOpts -emit-sil %s -o /dev/null -Xfrontend -verify

// REQUIRES: objc_interop
// REQUIRES: optimized_stdlib
Expand Down