Skip to content

Commit b6f7600

Browse files
committed
[PM] Port Scalarizer to the new pass manager.
Patch by: markus (Markus Lavin) Reviewers: chandlerc, fedor.sergeev Reviewed By: fedor.sergeev Subscribers: llvm-commits, Ka-Ka, bjope Differential Revision: https://reviews.llvm.org/D54695 llvm-svn: 347392
1 parent 1742ba5 commit b6f7600

File tree

18 files changed

+121
-62
lines changed

18 files changed

+121
-62
lines changed

llvm/include/llvm/InitializePasses.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ void initializeSampleProfileLoaderLegacyPassPass(PassRegistry&);
355355
void initializeSanitizerCoverageModulePass(PassRegistry&);
356356
void initializeScalarEvolutionWrapperPassPass(PassRegistry&);
357357
void initializeScalarizeMaskedMemIntrinPass(PassRegistry&);
358-
void initializeScalarizerPass(PassRegistry&);
358+
void initializeScalarizerLegacyPassPass(PassRegistry&);
359359
void initializeScavengerTestPass(PassRegistry&);
360360
void initializeScopedNoAliasAAWrapperPassPass(PassRegistry&);
361361
void initializeSeparateConstOffsetFromGEPPass(PassRegistry&);

llvm/include/llvm/LinkAllPasses.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include "llvm/Transforms/Scalar.h"
5151
#include "llvm/Transforms/Scalar/GVN.h"
5252
#include "llvm/Transforms/Scalar/InstSimplifyPass.h"
53+
#include "llvm/Transforms/Scalar/Scalarizer.h"
5354
#include "llvm/Transforms/Utils.h"
5455
#include "llvm/Transforms/Utils/SymbolRewriter.h"
5556
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"

llvm/include/llvm/Transforms/Scalar.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -391,12 +391,6 @@ FunctionPass *createLowerExpectIntrinsicPass();
391391
//
392392
FunctionPass *createPartiallyInlineLibCallsPass();
393393

394-
//===----------------------------------------------------------------------===//
395-
//
396-
// ScalarizerPass - Converts vector operations into scalar operations
397-
//
398-
FunctionPass *createScalarizerPass();
399-
400394
//===----------------------------------------------------------------------===//
401395
//
402396
// SeparateConstOffsetFromGEP - Split GEPs for better CSE
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
//===- Scalarizer.h --- Scalarize vector operations -----------------------===//
2+
//
3+
// The LLVM Compiler Infrastructure
4+
//
5+
// This file is distributed under the University of Illinois Open Source
6+
// License. See LICENSE.TXT for details.
7+
//
8+
//===----------------------------------------------------------------------===//
9+
//
10+
/// \file
11+
/// This pass converts vector operations into scalar operations, in order
12+
/// to expose optimization opportunities on the individual scalar operations.
13+
/// It is mainly intended for targets that do not have vector units, but it
14+
/// may also be useful for revectorizing code to different vector widths.
15+
//
16+
//===----------------------------------------------------------------------===//
17+
18+
#ifndef LLVM_TRANSFORMS_SCALAR_SCALARIZER_H
19+
#define LLVM_TRANSFORMS_SCALAR_SCALARIZER_H
20+
21+
#include "llvm/IR/PassManager.h"
22+
23+
namespace llvm {
24+
25+
class ScalarizerPass : public PassInfoMixin<ScalarizerPass> {
26+
public:
27+
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
28+
};
29+
30+
/// Create a legacy pass manager instance of the Scalarizer pass
31+
FunctionPass *createScalarizerPass();
32+
33+
}
34+
35+
#endif /* LLVM_TRANSFORMS_SCALAR_SCALARIZER_H */

llvm/lib/Passes/PassBuilder.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
#include "llvm/Transforms/Scalar/RewriteStatepointsForGC.h"
140140
#include "llvm/Transforms/Scalar/SCCP.h"
141141
#include "llvm/Transforms/Scalar/SROA.h"
142+
#include "llvm/Transforms/Scalar/Scalarizer.h"
142143
#include "llvm/Transforms/Scalar/SimpleLoopUnswitch.h"
143144
#include "llvm/Transforms/Scalar/SimplifyCFG.h"
144145
#include "llvm/Transforms/Scalar/Sink.h"

llvm/lib/Passes/PassRegistry.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ FUNCTION_PASS("print<phi-values>", PhiValuesPrinterPass(dbgs()))
205205
FUNCTION_PASS("print<regions>", RegionInfoPrinterPass(dbgs()))
206206
FUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs()))
207207
FUNCTION_PASS("reassociate", ReassociatePass())
208+
FUNCTION_PASS("scalarizer", ScalarizerPass())
208209
FUNCTION_PASS("sccp", SCCPPass())
209210
FUNCTION_PASS("simplify-cfg", SimplifyCFGPass())
210211
FUNCTION_PASS("sink", SinkingPass())

llvm/lib/Transforms/Scalar/Scalar.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "llvm/IR/Verifier.h"
2626
#include "llvm/InitializePasses.h"
2727
#include "llvm/Transforms/Scalar/GVN.h"
28+
#include "llvm/Transforms/Scalar/Scalarizer.h"
2829
#include "llvm/Transforms/Scalar/SimpleLoopUnswitch.h"
2930
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
3031

@@ -43,7 +44,7 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) {
4344
initializeDCELegacyPassPass(Registry);
4445
initializeDeadInstEliminationPass(Registry);
4546
initializeDivRemPairsLegacyPassPass(Registry);
46-
initializeScalarizerPass(Registry);
47+
initializeScalarizerLegacyPassPass(Registry);
4748
initializeDSELegacyPassPass(Registry);
4849
initializeGuardWideningLegacyPassPass(Registry);
4950
initializeLoopGuardWideningLegacyPassPass(Registry);

0 commit comments

Comments
 (0)