Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
CPlusPlusMangle.h
Go to the documentation of this file.
1#ifndef HALIDE_CPLUSPLUS_MANGLE_H
2#define HALIDE_CPLUSPLUS_MANGLE_H
3
4/** \file
5 *
6 * A simple function to get a C++ mangled function name for a function.
7 */
8#include <string>
9#include <vector>
10
11#include "Expr.h"
12
13namespace Halide {
14
15struct ExternFuncArgument;
16struct Target;
17
18namespace Internal {
19
20/** Return the mangled C++ name for a function.
21 * The target parameter is used to decide on the C++
22 * ABI/mangling style to use.
23 */
24std::string cplusplus_function_mangled_name(const std::string &name,
25 const std::vector<std::string> &namespaces,
26 Type return_type,
27 const std::vector<ExternFuncArgument> &args,
28 const Target &target);
29
31
32} // namespace Internal
33
34} // namespace Halide
35
36#endif
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
void cplusplus_mangle_test()
std::string cplusplus_function_mangled_name(const std::string &name, const std::vector< std::string > &namespaces, Type return_type, const std::vector< ExternFuncArgument > &args, const Target &target)
Return the mangled C++ name for a function.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
A struct representing a target machine and os to generate code for.
Definition Target.h:19
Types in the halide type system.
Definition Type.h:283