mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Add support for missed and analysis optimization remarks.
Summary: This adds two new diagnostics: -pass-remarks-missed and -pass-remarks-analysis. They take the same values as -pass-remarks but are intended to be triggered in different contexts. -pass-remarks-missed is used by LLVMContext::emitOptimizationRemarkMissed, which passes call when they tried to apply a transformation but couldn't. -pass-remarks-analysis is used by LLVMContext::emitOptimizationRemarkAnalysis, which passes call when they want to inform the user about analysis results. The patch also: 1- Adds support in the inliner for the two new remarks and a test case. 2- Moves emitOptimizationRemark* functions to the llvm namespace. 3- Adds an LLVMContext argument instead of making them member functions of LLVMContext. Reviewers: qcolombet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D3682 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209442 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -67,6 +67,7 @@
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DebugInfo.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/DiagnosticInfo.h"
|
||||
#include "llvm/IR/Dominators.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@@ -1213,10 +1214,10 @@ struct LoopVectorize : public FunctionPass {
|
||||
DEBUG(dbgs() << "LV: Trying to at least unroll the loops.\n");
|
||||
|
||||
// Report the unrolling decision.
|
||||
F->getContext().emitOptimizationRemark(
|
||||
DEBUG_TYPE, *F, L->getStartLoc(),
|
||||
Twine("unrolled with interleaving factor " + Twine(UF) +
|
||||
" (vectorization not beneficial)"));
|
||||
emitOptimizationRemark(F->getContext(), DEBUG_TYPE, *F, L->getStartLoc(),
|
||||
Twine("unrolled with interleaving factor " +
|
||||
Twine(UF) +
|
||||
" (vectorization not beneficial)"));
|
||||
|
||||
// We decided not to vectorize, but we may want to unroll.
|
||||
InnerLoopUnroller Unroller(L, SE, LI, DT, DL, TLI, UF);
|
||||
@@ -1228,8 +1229,8 @@ struct LoopVectorize : public FunctionPass {
|
||||
++LoopsVectorized;
|
||||
|
||||
// Report the vectorization decision.
|
||||
F->getContext().emitOptimizationRemark(
|
||||
DEBUG_TYPE, *F, L->getStartLoc(),
|
||||
emitOptimizationRemark(
|
||||
F->getContext(), DEBUG_TYPE, *F, L->getStartLoc(),
|
||||
Twine("vectorized loop (vectorization factor: ") + Twine(VF.Width) +
|
||||
", unrolling interleave factor: " + Twine(UF) + ")");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user