Skip to content

Commit 95358e8

Browse files
Merge pull request #84856 from aschwaighofer/fix_assembly_vision_tests
AssemblyVision: Add assemblyvisionremarkgen-diagnose-copy-destroy-addr option and use it
2 parents 009aebf + bd2d628 commit 95358e8

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

lib/SILOptimizer/Transforms/AssemblyVisionRemarkGenerator.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ static llvm::cl::opt<bool> DecllessDebugValueUseSILDebugInfo(
5656
"write SIL test cases for this pass"),
5757
llvm::cl::init(false));
5858

59+
static llvm::cl::opt<bool> DiagnoseCopyDestroyAddr(
60+
"assemblyvisionremarkgen-diagnose-copy-destroy-addr", llvm::cl::Hidden,
61+
llvm::cl::desc(
62+
"Emit opt remarks for copy_addr, destroy_addr instructions"),
63+
llvm::cl::init(true));
64+
65+
5966
//===----------------------------------------------------------------------===//
6067
// Value To Decl Inferrer
6168
//===----------------------------------------------------------------------===//
@@ -568,6 +575,9 @@ struct AssemblyVisionRemarkGeneratorInstructionVisitor
568575

569576
void AssemblyVisionRemarkGeneratorInstructionVisitor::
570577
visitCopyAddrInst(CopyAddrInst *copy) {
578+
if (!DiagnoseCopyDestroyAddr)
579+
return;
580+
571581
ORE.emit([&]() {
572582
using namespace OptRemark;
573583
SmallVector<Argument, 8> inferredArgs;
@@ -603,6 +613,9 @@ void AssemblyVisionRemarkGeneratorInstructionVisitor::
603613

604614
void AssemblyVisionRemarkGeneratorInstructionVisitor::
605615
visitDestroyAddrInst(DestroyAddrInst *destroy) {
616+
if (!DiagnoseCopyDestroyAddr)
617+
return;
618+
606619
ORE.emit([&]() {
607620
using namespace OptRemark;
608621
SmallVector<Argument, 8> inferredArgs;

test/SILOptimizer/assemblyvision_remark/cast_remarks.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 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
1+
// 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
22

33
// REQUIRES: optimized_stdlib
44
// REQUIRES: swift_stdlib_no_asserts

test/SILOptimizer/assemblyvision_remark/cast_remarks_objc.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 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
1+
// 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
22

33
// REQUIRES: objc_interop
44
// REQUIRES: optimized_stdlib

0 commit comments

Comments
 (0)