12e8ad49eSJorge Gorbe Moya //===- RegionsFromMetadata.cpp - A helper to test RegionPasses -----------===// 22e8ad49eSJorge Gorbe Moya // 32e8ad49eSJorge Gorbe Moya // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42e8ad49eSJorge Gorbe Moya // See https://llvm.org/LICENSE.txt for license information. 52e8ad49eSJorge Gorbe Moya // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 62e8ad49eSJorge Gorbe Moya // 72e8ad49eSJorge Gorbe Moya //===----------------------------------------------------------------------===// 82e8ad49eSJorge Gorbe Moya 92e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h" 102e8ad49eSJorge Gorbe Moya 112e8ad49eSJorge Gorbe Moya #include "llvm/SandboxIR/Region.h" 122e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h" 132e8ad49eSJorge Gorbe Moya 142e8ad49eSJorge Gorbe Moya namespace llvm::sandboxir { 152e8ad49eSJorge Gorbe Moya 162e8ad49eSJorge Gorbe Moya RegionsFromMetadata::RegionsFromMetadata(StringRef Pipeline) 172e8ad49eSJorge Gorbe Moya : FunctionPass("regions-from-metadata"), 182e8ad49eSJorge Gorbe Moya RPM("rpm", Pipeline, SandboxVectorizerPassBuilder::createRegionPass) {} 192e8ad49eSJorge Gorbe Moya 20a461869dSvporpo bool RegionsFromMetadata::runOnFunction(Function &F, const Analyses &A) { 212e8ad49eSJorge Gorbe Moya SmallVector<std::unique_ptr<sandboxir::Region>> Regions = 22*4b209c5dSvporpo sandboxir::Region::createRegionsFromMD(F, A.getTTI()); 232e8ad49eSJorge Gorbe Moya for (auto &R : Regions) { 24a461869dSvporpo RPM.runOnRegion(*R, A); 252e8ad49eSJorge Gorbe Moya } 262e8ad49eSJorge Gorbe Moya return false; 272e8ad49eSJorge Gorbe Moya } 282e8ad49eSJorge Gorbe Moya 292e8ad49eSJorge Gorbe Moya } // namespace llvm::sandboxir 30