|
const_cstrings_span | header_names () const |
| Names of the "memoized"/off-file-system headers made available to the program (and usable as identifiers for #include directives)
|
|
const_cstrings_span | header_sources () const |
| Sources of the "memoized"/off-file-system headers made available to the program (and usable as identifiers for #include directives) More...
|
|
size_t | num_headers () const |
|
program_t & | set_target (device::compute_capability_t target_compute_capability) |
| Have the compilation produce code for devices with a given compute capability.
|
|
program_t & | set_target (const device_t &device) |
| Have the compilation produce code for devices with the same compute capability as a given device.
|
|
program_t & | set_target (const context_t &context) |
| Have the compilation produce code for devices with the same compute capability as the device of a given context.
|
|
program_t & | clear_targets () |
| Remove all compute capabilities which were chosen to have code produced for them by the compilation.
|
|
template<typename Container > |
program_t & | set_targets (Container target_compute_capabilities) |
| Remove all compute capabilities which were chosen to have code produced for them by the compilation.
|
|
program_t & | add_target (device::compute_capability_t target_compute_capability) |
| Have the compilation also produce code for devices with a given compute capability.
|
|
void | add_target (const device_t &device) |
| Have the compilation also produce code for devices with the same compute capability as a given device.
|
|
void | add_target (const context_t &context) |
| Have the compilation also produce code for devices with the same compute capability as the device of a given context.
|
|
program_t & | set_source (const char *source) |
|
program_t & | set_source (const ::std::string &source) |
|
program_t & | set_options (const compilation_options_t< source_kind > &options) |
|
program_t & | set_options (compilation_options_t< source_kind > &&options) |
|
template<typename String1 , typename String2 > |
program_t & | add_header (String1 &&name, String2 &&source) |
| Adds another "memoized" header to the program. More...
|
|
template<typename String1 , typename String2 > |
program_t & | add_header (const ::std::pair< String1, String2 > &name_and_source) |
| Adds another "memoized" header to the program. More...
|
|
template<typename String1 , typename String2 > |
program_t & | add_header (::std::pair< String1, String2 > &&name_and_source) |
| String2>(String1&&, String2&&) More...
|
|
template<typename RangeOfNames , typename RangeOfSources > |
const program_t & | add_headers (RangeOfNames header_names, RangeOfSources header_sources) |
| Adds multiple "memoized" headers to the program. More...
|
|
template<typename RangeOfNameAndSourcePairs > |
program_t & | add_headers (RangeOfNameAndSourcePairs &&named_header_pairs) |
| Adds multiple "memoized" headers to the program. More...
|
|
template<typename RangeOfNames , typename RangeOfSources > |
const program_t & | set_headers (RangeOfNames &&names, RangeOfSources &&sources) |
| Replaces the set of "memoized" headers used in the program's compilation. More...
|
|
template<typename RangeOfNameAndSourcePairs > |
program_t & | set_headers (RangeOfNameAndSourcePairs &&named_header_pairs) |
| Replaces the set of "memoized" headers used in the program's compilation. More...
|
|
program_t & | clear_headers () |
| Removes all "memoized" headers to be used in the program's compilation.
|
|
program_t & | clear_options () |
| Clears any forced values of compilation options, reverting the compilation to the default values.
|
|
compilation_output_t< cuda_cpp > | compile () const |
| Compiles the program represented by this object (which, until this point, is just a bunch of unrelated sources and options). More...
|
|
program_t & | add_registered_global (const char *unmangled_name) |
| Register a pre-mangled name of a global, to make available for use after compilation. More...
|
|
program_t & | add_registered_global (const ::std::string &unmangled_name) |
| Register a pre-mangled name of a global, to make available for use after compilation. More...
|
|
template<typename Container > |
program_t & | add_registered_globals (const Container &globals_to_register) |
| Register multiple pre-mangled names of global, to make available for use after compilation. More...
|
|
template<typename Container > |
program_t & | add_registered_globals (Container &&globals_to_register) |
| add_registered_globals(const Container&)
|
|
| program_t (::std::string name) |
|
| program_t (const program_t &)=default |
|
| program_t (program_t &&)=default |
|
template<>
class cuda::rtc::program_t< cuda_cpp >
Wrapper class for a CUDA runtime-compilable program.
- Note
- This class is a "reference type", not a "value type". Therefore, making changes to the program is a const-respecting operation on this class.
-
Many of this class' methods could have been placed in the base class, and are "duplicated" in program_t<ptx> - except that they return the program object itself, allowing for builder-pattern-like use.