109467b48Spatrick //===-- TargetSelect.h ------------------------------------------*- C++ -*-===// 209467b48Spatrick // 309467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 409467b48Spatrick // See https://llvm.org/LICENSE.txt for license information. 509467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 609467b48Spatrick // 709467b48Spatrick //===----------------------------------------------------------------------===// 809467b48Spatrick /// 909467b48Spatrick /// \file 1009467b48Spatrick /// 11*d415bd75Srobert /// Utilities to handle the creation of the enabled exegesis target(s). 1209467b48Spatrick /// 1309467b48Spatrick //===----------------------------------------------------------------------===// 1409467b48Spatrick 1509467b48Spatrick #ifndef LLVM_TOOLS_LLVM_EXEGESIS_TARGET_SELECT_H 1609467b48Spatrick #define LLVM_TOOLS_LLVM_EXEGESIS_TARGET_SELECT_H 1709467b48Spatrick 18*d415bd75Srobert #include "llvm/Config/llvm-config.h" 19*d415bd75Srobert 2009467b48Spatrick namespace llvm { 2109467b48Spatrick namespace exegesis { 2209467b48Spatrick 23*d415bd75Srobert // Forward declare all of the initialize methods for targets compiled in 24*d415bd75Srobert #define LLVM_EXEGESIS(TargetName) void Initialize##TargetName##ExegesisTarget(); 25*d415bd75Srobert #include "llvm/Config/TargetExegesis.def" 2609467b48Spatrick 27*d415bd75Srobert // Initializes all exegesis targets compiled in. InitializeAllExegesisTargets()28*d415bd75Srobertinline void InitializeAllExegesisTargets() { 29*d415bd75Srobert #define LLVM_EXEGESIS(TargetName) Initialize##TargetName##ExegesisTarget(); 30*d415bd75Srobert #include "llvm/Config/TargetExegesis.def" 3109467b48Spatrick } 3209467b48Spatrick 3309467b48Spatrick } // namespace exegesis 3409467b48Spatrick } // namespace llvm 3509467b48Spatrick 3609467b48Spatrick #endif // LLVM_TOOLS_LLVM_EXEGESIS_TARGET_SELECT_H 37