1 //===- MachineUniformityAnalysis.h ---------------------------*- C++ -*----===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 /// \file 10 /// \brief Uniformity info and uniformity-aware uniform info for Machine IR 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_CODEGEN_MACHINEUNIFORMITYANALYSIS_H 15 #define LLVM_CODEGEN_MACHINEUNIFORMITYANALYSIS_H 16 17 #include "llvm/ADT/GenericUniformityInfo.h" 18 #include "llvm/CodeGen/MachineCycleAnalysis.h" 19 #include "llvm/CodeGen/MachineDominators.h" 20 #include "llvm/CodeGen/MachineSSAContext.h" 21 22 namespace llvm { 23 24 extern template class GenericUniformityInfo<MachineSSAContext>; 25 using MachineUniformityInfo = GenericUniformityInfo<MachineSSAContext>; 26 27 /// \brief Compute the uniform information of a Machine IR function. 28 MachineUniformityInfo 29 computeMachineUniformityInfo(MachineFunction &F, 30 const MachineCycleInfo &cycleInfo, 31 const MachineDomTree &domTree); 32 33 } // namespace llvm 34 35 #endif // LLVM_CODEGEN_MACHINEUNIFORMITYANALYSIS_H 36