[Flang][Driver] Add support for backend passes in R_Group

Previously, R_Group options only reported middle-end passes.
This patch allows backend passes to be reported as well.

Depends on D158174. That patch adds backend support to R_Group
options.

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D159260
This commit is contained in:
Victor Kingi 2023-08-29 14:56:02 +00:00
parent 1256ef274c
commit e87d2d2cc9
2 changed files with 36 additions and 0 deletions

View File

@ -48,6 +48,7 @@
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Bitcode/BitcodeWriterPass.h"
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
#include "llvm/IR/LLVMRemarkStreamer.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Verifier.h"
@ -1014,6 +1015,18 @@ public:
optimizationRemarkHandler(
llvm::cast<llvm::OptimizationRemarkAnalysis>(di));
break;
case llvm::DK_MachineOptimizationRemark:
optimizationRemarkHandler(
llvm::cast<llvm::MachineOptimizationRemark>(di));
break;
case llvm::DK_MachineOptimizationRemarkMissed:
optimizationRemarkHandler(
llvm::cast<llvm::MachineOptimizationRemarkMissed>(di));
break;
case llvm::DK_MachineOptimizationRemarkAnalysis:
optimizationRemarkHandler(
llvm::cast<llvm::MachineOptimizationRemarkAnalysis>(di));
break;
default:
break;
}

View File

@ -0,0 +1,23 @@
! This file tests backend passes emitted by the -Rpass family of flags
! loop-delete isn't enabled at O0 so we use at least O1
! DEFINE: %{output} = -S -o /dev/null 2>&1
! Check full -Rpass-missed message is emitted
! RUN: %flang %s -O1 -Rpass-missed %{output} 2>&1 | FileCheck %s --check-prefix=MISSED
! Check full -Rpass-analysis message is emitted
! RUN: %flang %s -O1 -Rpass-analysis %{output} 2>&1 | FileCheck %s --check-prefix=ANALYSIS
! MISSED: remark: {{[0-9]+}} virtual registers copies {{.*}} total copies cost generated in function
! ANALYSIS: remark: BasicBlock:
program forttest
implicit none
integer :: n
do n = 1,2
print *, ""
end do
end program forttest