xref: /openbsd-src/gnu/llvm/llvm/tools/llvm-exegesis/lib/TargetSelect.h (revision d415bd752c734aee168c4ee86ff32e8cc249eb16)
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*d415bd75Srobert inline 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