1 //===- Scalarizer.h --- Scalarize vector operations -----------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
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.
16 //===----------------------------------------------------------------------===//
18 #ifndef LLVM_TRANSFORMS_SCALAR_SCALARIZER_H
19 #define LLVM_TRANSFORMS_SCALAR_SCALARIZER_H
21 #include "llvm/IR/PassManager.h"
25 class ScalarizerPass : public PassInfoMixin<ScalarizerPass> {
27 PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
30 /// Create a legacy pass manager instance of the Scalarizer pass
31 FunctionPass *createScalarizerPass();
35 #endif /* LLVM_TRANSFORMS_SCALAR_SCALARIZER_H */