1 //===--- polly/PPCGCodeGeneration.h - Polly Accelerator Code Generation. --===//
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 // Take a scop created by ScopInfo and map it to GPU code using the ppcg
10 // GPU mapping strategy.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef POLLY_PPCGCODEGENERATION_H
15 #define POLLY_PPCGCODEGENERATION_H
16 
17 /// The GPU Architecture to target.
18 enum GPUArch { NVPTX64, SPIR32, SPIR64 };
19 
20 /// The GPU Runtime implementation to use.
21 enum GPURuntime { CUDA, OpenCL };
22 
23 namespace polly {
24 extern bool PollyManagedMemory;
25 
26 /// Use for pass instantiation defaults.
27 /// @{
28 extern GPURuntime GPURuntimeChoice;
29 extern GPUArch GPUArchChoice;
30 /// @}
31 } // namespace polly
32 
33 #endif // POLLY_PPCGCODEGENERATION_H
34