<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> <meta http-equiv="X-UA-Compatible" content="IE=edge"></meta> <meta name="copyright" content="(C) Copyright 2005"></meta> <meta name="DC.rights.owner" content="(C) Copyright 2005"></meta> <meta name="DC.Type" content="cppModule"></meta> <meta name="DC.Title" content="Compilation"></meta> <meta name="abstract" content=""></meta> <meta name="description" content=""></meta> <meta name="DC.Format" content="XHTML"></meta> <meta name="DC.Identifier" content="group__compilation"></meta> <link rel="stylesheet" type="text/css" href="../common/formatting/commonltr.css"></link> <link rel="stylesheet" type="text/css" href="../common/formatting/site.css"></link> <title>libNVVM API :: CUDA Toolkit Documentation</title> <!--[if lt IE 9]> <script src="../common/formatting/html5shiv-printshiv.min.js"></script> <![endif]--> <script type="text/javascript" charset="utf-8" src="../common/scripts/tynt/tynt.js"></script> <script type="text/javascript" charset="utf-8" src="../common/formatting/jquery.min.js"></script> <script type="text/javascript" charset="utf-8" src="../common/formatting/jquery.ba-hashchange.min.js"></script> <script type="text/javascript" charset="utf-8" src="../common/formatting/jquery.scrollintoview.min.js"></script> <script type="text/javascript" src="../search/htmlFileList.js"></script> <script type="text/javascript" src="../search/htmlFileInfoList.js"></script> <script type="text/javascript" src="../search/nwSearchFnt.min.js"></script> <script type="text/javascript" src="../search/stemmers/en_stemmer.min.js"></script> <script type="text/javascript" src="../search/index-1.js"></script> <script type="text/javascript" src="../search/index-2.js"></script> <script type="text/javascript" src="../search/index-3.js"></script> <link rel="canonical" href="http://docs.nvidia.com/cuda/libnvvm-api/index.html"></link> <link rel="stylesheet" type="text/css" href="../common/formatting/qwcode.highlight.css"></link> </head> <body> <header id="header"><span id="company">NVIDIA</span><span id="site-title">CUDA Toolkit Documentation</span><form id="search" method="get" action="search"> <input type="text" name="search-text"></input><fieldset id="search-location"> <legend>Search In:</legend> <label><input type="radio" name="search-type" value="site"></input>Entire Site</label> <label><input type="radio" name="search-type" value="document"></input>Just This Document</label></fieldset> <button type="reset">clear search</button> <button id="submit" type="submit">search</button></form> </header> <div id="site-content"> <nav id="site-nav"> <div class="category closed"><a href="../index.html" title="The root of the site.">CUDA Toolkit v6.5</a></div> <div class="category"><a href="index.html" title="libNVVM API">libNVVM API</a></div> <ul> <li> <div class="section-link"><a href="modules.html#modules">1. Modules</a></div> <ul> <li> <div class="section-link"><a href="group__error.html#group__error">1.1. Error Handling</a></div> </li> <li> <div class="section-link"><a href="group__query.html#group__query">1.2. General Information Query</a></div> </li> <li> <div class="section-link"><a href="group__compilation.html#group__compilation">1.3. Compilation</a></div> </li> </ul> </li> <li> <div class="section-link"><a href="notices-header.html#notices-header">Notices</a></div> <ul></ul> </li> </ul> </nav> <div id="resize-nav"></div> <nav id="search-results"> <h2>Search Results</h2> <ol></ol> </nav> <div id="contents-container"> <div id="breadcrumbs-container"> <div id="breadcrumbs"><a href="group__query.html" shape="rect">< Previous</a> | <a href="notices-header.html" shape="rect">Next ></a></div> <div id="release-info">libNVVM API (<a href="../../pdf/libNVVM_API.pdf">PDF</a>) - v6.5 (<a href="https://developer.nvidia.com/cuda-toolkit-archive">older</a>) - Last updated August 1, 2014 - <a href="mailto:cudatools@nvidia.com?subject=CUDA Toolkit Documentation Feedback: libNVVM API">Send Feedback</a> - <span class="st_facebook"></span><span class="st_twitter"></span><span class="st_linkedin"></span><span class="st_reddit"></span><span class="st_slashdot"></span><span class="st_tumblr"></span><span class="st_sharethis"></span></div> </div> <article id="contents"> <div class="topic reference apiRef apiPackage cppModule" id="group__compilation"><a name="group__compilation" shape="rect"> <!-- --></a><h2 class="topictitle2 cppModule">1.3. Compilation</h2> <div class="section"> <p></p> </div> <h3 class="fake_sectiontitle member_header">Typedefs</h3> <dl class="members"> <dt><span class="member_type">typedef _nvvmProgram * </span><span class="member_name"><a href="#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" shape="rect">nvvmProgram</a></span></dt> <dd class="shortdesc"><span></span><span class="desc">NVVM Program. </span></dd> </dl> <h3 class="fake_sectiontitle member_header">Functions</h3> <dl class="members"> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g0c22d2b9be033c165bc37b16f3ed75c6" shape="rect">nvvmAddModuleToProgram</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, const char*<span> </span><span class="keyword keyword apiItemName">buffer</span>, size_t<span> </span><span class="keyword keyword apiItemName">size</span>, const char*<span> </span><span class="keyword keyword apiItemName">name</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Add a module level NVVM IR to a program. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g76ac1e23f5d0e2240e78be0e63450346" shape="rect">nvvmCompileProgram</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, int <span> </span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span> </span><span class="keyword keyword apiItemName">options</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Compile the NVVM program. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g46a0ab04a063cba28bfbb41a1939e3f4" shape="rect">nvvmCreateProgram</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a>*<span> </span><span class="keyword keyword apiItemName">prog</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Create a program, and set the value of its handle to *prog. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1gfba94cab1224c0152841b80690d366aa" shape="rect">nvvmDestroyProgram</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a>*<span> </span><span class="keyword keyword apiItemName">prog</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Destroy a program. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1gff56fc783d0c4fb0759bfaa00f414072" shape="rect">nvvmGetCompiledResult</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, char*<span> </span><span class="keyword keyword apiItemName">buffer</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Get the compiled result. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g837cfc3c852c82ecef14cda6c6702c9f" shape="rect">nvvmGetCompiledResultSize</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, size_t*<span> </span><span class="keyword keyword apiItemName">bufferSizeRet</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Get the size of the compiled result. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g2691e391b700f29457b7362cf5603b76" shape="rect">nvvmGetProgramLog</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, char*<span> </span><span class="keyword keyword apiItemName">buffer</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Get the Compiler/Verifier Message. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g74c5e0f33b20c1168ed79669a72a7467" shape="rect">nvvmGetProgramLogSize</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, size_t*<span> </span><span class="keyword keyword apiItemName">bufferSizeRet</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Get the Size of Compiler/Verifier Message. </span></dd> <dt><span class="member_type"><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> </span><span class="member_name"><a href="#group__compilation_1g77a96a407f9c6785f47ec1ea13f9cf9f" shape="rect">nvvmVerifyProgram</a> ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, int <span> </span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span> </span><span class="keyword keyword apiItemName">options</span> ) </span></dt> <dd class="shortdesc"><span></span><span class="desc">Verify the NVVM program. </span></dd> </dl> <div class="description"> <h3 class="sectiontitle">Typedefs</h3> <dl class="description"> <dt class="description"><a name="group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" id="group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" shape="rect"> <!-- --></a><span>typedef _nvvmProgram * nvvmProgram</span></dt> <dd class="description"> <div class="section"> <p>NVVM Program. An opaque handle for a program </p> </div> </dd> </dl> </div> <div class="description"> <h3 class="sectiontitle">Functions</h3> <dl class="description"> <dt class="description"><a name="group__compilation_1g0c22d2b9be033c165bc37b16f3ed75c6" id="group__compilation_1g0c22d2b9be033c165bc37b16f3ed75c6" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmAddModuleToProgram ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, const char*<span> </span><span class="keyword keyword apiItemName">buffer</span>, size_t<span> </span><span class="keyword keyword apiItemName">size</span>, const char*<span> </span><span class="keyword keyword apiItemName">name</span> ) </span></dt> <dd class="description"> <div class="section">Add a module level NVVM IR to a program. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">buffer</span></tt></dt> <dd>NVVM IR module in the bitcode or text representation. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">size</span></tt></dt> <dd>Size of the NVVM IR module. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">name</span></tt></dt> <dd>Name of the NVVM IR module. If NULL, "<unnamed>" is used as the name. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_OUT_OF_MEMORY</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_INPUT</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The buffer should contain an NVVM IR module either in the bitcode representation or in the text representation.</p> <p class="p"></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g76ac1e23f5d0e2240e78be0e63450346" id="group__compilation_1g76ac1e23f5d0e2240e78be0e63450346" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmCompileProgram ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, int <span> </span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span> </span><span class="keyword keyword apiItemName">options</span> ) </span></dt> <dd class="description"> <div class="section">Compile the NVVM program. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">numOptions</span></tt></dt> <dd>Number of compiler options passed. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">options</span></tt></dt> <dd>Compiler options in the form of C string array. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_OUT_OF_MEMORY</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_IR_VERSION_MISMATCH</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_OPTION</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_NO_MODULE_IN_PROGRAM</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_COMPILATION</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The NVVM IR modules in the program will be linked at the IR level. The linked IR program is compiled to PTX.</p> <p class="p">The target datalayout in the linked IR program is used to determine the address size (32bit vs 64bit).</p> <p class="p">The valid compiler options are:</p> <p class="p"> <ul class="ul"> <li class="li"> <p class="p">-g (enable generation of debugging information)</p> </li> <li class="li"> <div class="p">-opt= <ul class="ul"> <li class="li"> <p class="p">0 (disable optimizations)</p> </li> <li class="li"> <p class="p">3 (default, enable optimizations)</p> </li> </ul> </div> </li> <li class="li"> <div class="p">-arch= <ul class="ul"> <li class="li"> <p class="p">compute_20 (default)</p> </li> <li class="li"> <p class="p">compute_30</p> </li> <li class="li"> <p class="p">compute_35</p> </li> </ul> </div> </li> <li class="li"> <div class="p">-ftz= <ul class="ul"> <li class="li"> <p class="p">0 (default, preserve denormal values, when performing single-precision floating-point operations)</p> </li> <li class="li"> <p class="p">1 (flush denormal values to zero, when performing single-precision floating-point operations)</p> </li> </ul> </div> </li> <li class="li"> <div class="p">-prec-sqrt= <ul class="ul"> <li class="li"> <p class="p">0 (use a faster approximation for single-precision floating-point square root)</p> </li> <li class="li"> <p class="p">1 (default, use IEEE round-to-nearest mode for single-precision floating-point square root)</p> </li> </ul> </div> </li> <li class="li"> <div class="p">-prec-div= <ul class="ul"> <li class="li"> <p class="p">0 (use a faster approximation for single-precision floating-point division and reciprocals)</p> </li> <li class="li"> <p class="p">1 (default, use IEEE round-to-nearest mode for single-precision floating-point division and reciprocals)</p> </li> </ul> </div> </li> <li class="li"> <div class="p">-fma= <ul class="ul"> <li class="li"> <p class="p">0 (disable FMA contraction)</p> </li> <li class="li"> <p class="p">1 (default, enable FMA contraction)</p> </li> </ul> </div> </li> </ul> </p> <p class="p"></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g46a0ab04a063cba28bfbb41a1939e3f4" id="group__compilation_1g46a0ab04a063cba28bfbb41a1939e3f4" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmCreateProgram ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a>*<span> </span><span class="keyword keyword apiItemName">prog</span> ) </span></dt> <dd class="description"> <div class="section">Create a program, and set the value of its handle to *prog. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_OUT_OF_MEMORY</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p></p> <p class="p"></p> <p class="p apiDesc_subtitle"><strong class="ph b">See also:</strong></p> <p class="p see_subsection"><a class="xref" href="group__compilation.html#group__compilation_1gfba94cab1224c0152841b80690d366aa" title="Destroy a program." shape="rect">nvvmDestroyProgram()</a></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1gfba94cab1224c0152841b80690d366aa" id="group__compilation_1gfba94cab1224c0152841b80690d366aa" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmDestroyProgram ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a>*<span> </span><span class="keyword keyword apiItemName">prog</span> ) </span></dt> <dd class="description"> <div class="section">Destroy a program. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p></p> <p class="p"></p> <p class="p apiDesc_subtitle"><strong class="ph b">See also:</strong></p> <p class="p see_subsection"><a class="xref" href="group__compilation.html#group__compilation_1g46a0ab04a063cba28bfbb41a1939e3f4" title="Create a program, and set the value of its handle to *prog." shape="rect">nvvmCreateProgram()</a></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1gff56fc783d0c4fb0759bfaa00f414072" id="group__compilation_1gff56fc783d0c4fb0759bfaa00f414072" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmGetCompiledResult ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, char*<span> </span><span class="keyword keyword apiItemName">buffer</span> ) </span></dt> <dd class="description"> <div class="section">Get the compiled result. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">buffer</span></tt></dt> <dd>Compiled result. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The result is stored in the memory pointed by 'buffer'.</p> <p class="p"></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g837cfc3c852c82ecef14cda6c6702c9f" id="group__compilation_1g837cfc3c852c82ecef14cda6c6702c9f" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmGetCompiledResultSize ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, size_t*<span> </span><span class="keyword keyword apiItemName">bufferSizeRet</span> ) </span></dt> <dd class="description"> <div class="section">Get the size of the compiled result. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">bufferSizeRet</span></tt></dt> <dd>Size of the compiled result (including the trailing NULL). </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g2691e391b700f29457b7362cf5603b76" id="group__compilation_1g2691e391b700f29457b7362cf5603b76" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmGetProgramLog ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, char*<span> </span><span class="keyword keyword apiItemName">buffer</span> ) </span></dt> <dd class="description"> <div class="section">Get the Compiler/Verifier Message. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">buffer</span></tt></dt> <dd>Compilation/Verification log. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The NULL terminated message string is stored in the memory pointed by 'buffer' when the return value is NVVM_SUCCESS.</p> <p class="p"></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g74c5e0f33b20c1168ed79669a72a7467" id="group__compilation_1g74c5e0f33b20c1168ed79669a72a7467" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmGetProgramLogSize ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, size_t*<span> </span><span class="keyword keyword apiItemName">bufferSizeRet</span> ) </span></dt> <dd class="description"> <div class="section">Get the Size of Compiler/Verifier Message. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">bufferSizeRet</span></tt></dt> <dd>Size of the compilation/verification log (including the trailing NULL). </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The size of the message string (including the trailing NULL) is stored into 'buffer_size_ret' when the return value is NVVM_SUCCESS.</p> <p class="p"></p> <p class="p"></p> </div> </dd> <dt class="description"><a name="group__compilation_1g77a96a407f9c6785f47ec1ea13f9cf9f" id="group__compilation_1g77a96a407f9c6785f47ec1ea13f9cf9f" shape="rect"> <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmVerifyProgram ( <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span> </span><span class="keyword keyword apiItemName">prog</span>, int <span> </span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span> </span><span class="keyword keyword apiItemName">options</span> ) </span></dt> <dd class="description"> <div class="section">Verify the NVVM program. </div> <div class="section"> <h6 class="parameter_header"> Parameters </h6> <dl class="table-display-params"> <dt><tt class="code"><span class="keyword keyword apiItemName">prog</span></tt></dt> <dd>NVVM program. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">numOptions</span></tt></dt> <dd>Number of compiler options passed. </dd> <dt><tt class="code"><span class="keyword keyword apiItemName">options</span></tt></dt> <dd>Compiler options in the form of C string array. </dd> </dl> </div> <div class="section"> <h6 class="return_header">Returns</h6> <p class="return"> <ul> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_SUCCESS</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_OUT_OF_MEMORY</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_IR_VERSION_MISMATCH</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_PROGRAM</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_IR</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_INVALID_OPTION</a></li> <li><a class="xref" href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code." shape="rect">NVVM_ERROR_NO_MODULE_IN_PROGRAM</a></li> </ul> </p> </div> <div class="section"> <h6 class="description_header">Description</h6> <p>The valid compiler options are:</p> <p class="p">NONE. The <tt class="ph tt code">numOptions</tt> and <tt class="ph tt code">options</tt> parameters are ignored, and are for future use. </p> <p class="p"></p> <p class="p"></p> </div> </dd> </dl> </div> </div> <hr id="contents-end"></hr> </article> </div> </div> <script language="JavaScript" type="text/javascript" charset="utf-8" src="../common/formatting/common.min.js"></script> <script language="JavaScript" type="text/javascript" charset="utf-8" src="../common/scripts/google-analytics/google-analytics-write.js"></script> <script language="JavaScript" type="text/javascript" charset="utf-8" src="../common/scripts/google-analytics/google-analytics-tracker.js"></script> <script type="text/javascript">var switchTo5x=true;</script><script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script><script type="text/javascript">stLight.options({publisher: "998dc202-a267-4d8e-bce9-14debadb8d92", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script></body> </html>