Sophie

Sophie

distrib > Mageia > 7 > x86_64 > media > nonfree-updates > by-pkgid > b86a85131cc739c1c53d0b55840a4328 > files > 2768

nvidia-cuda-toolkit-devel-10.1.168-1.2.mga7.nonfree.x86_64.rpm

<!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="//assets.adobedtm.com/b92787824f2e0e9b68dc2e993f9bd995339fe417/satelliteLib-7ba51e58dc61bcb0e9311aadd02a0108ab24cc6c.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 
                  
                  
                  v10.1.168</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.&nbsp;Modules</a></div>
                  <ul>
                     <li>
                        <div class="section-link"><a href="group__error.html#group__error">1.1.&nbsp;Error Handling</a></div>
                     </li>
                     <li>
                        <div class="section-link"><a href="group__query.html#group__query">1.2.&nbsp;General Information Query</a></div>
                     </li>
                     <li>
                        <div class="section-link"><a href="group__compilation.html#group__compilation">1.3.&nbsp;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">&lt; Previous</a> | <a href="notices-header.html" shape="rect">Next &gt;</a></div>
               <div id="release-info">libNVVM API
                  (<a href="../../pdf/libNVVM_API.pdf">PDF</a>)
                  -
                   
                  
                  
                  v10.1.168
                  (<a href="https://developer.nvidia.com/cuda-toolkit-archive">older</a>)
                  -
                  Last updated April 24, 2019
                  -
                  <a href="mailto:CUDAIssues@nvidia.com?subject=CUDA Toolkit Documentation Feedback: libNVVM API">Send Feedback</a></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.&nbsp;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 * &nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, const char*<span>&nbsp;</span><span class="keyword keyword apiItemName">buffer</span>, size_t<span>&nbsp;</span><span class="keyword keyword apiItemName">size</span>, const char*<span>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, int <span>&nbsp;</span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, char*<span>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, size_t*<span>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, char*<span>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, size_t*<span>&nbsp;</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>&nbsp;</span><span class="member_name"><a href="#group__compilation_1g5356ce5063db232cd4330b666c62219b" shape="rect">nvvmLazyAddModuleToProgram</a> (  <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, const char*<span>&nbsp;</span><span class="keyword keyword apiItemName">buffer</span>, size_t<span>&nbsp;</span><span class="keyword keyword apiItemName">size</span>, const char*<span>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, int <span>&nbsp;</span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, const char*<span>&nbsp;</span><span class="keyword keyword apiItemName">buffer</span>, size_t<span>&nbsp;</span><span class="keyword keyword apiItemName">size</span>, const char*<span>&nbsp;</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, "&lt;unnamed&gt;" 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. The module may have NVVM IR version 1.5 in LLVM 5.0 bitcode format. Alternatively,
                                 the module may have NVVM IR version 1.2 either in the LLVM 3.4 bitcode representation or in the LLVM 3.4 text representation.
                                 Support for reading the text representation of NVVM IR is deprecated and may be removed in a later version.
                              </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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, int <span>&nbsp;</span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span>&nbsp;</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, valid only with -opt=0)</p>
                                    </li>
                                    <li class="li">
                                       <p class="p">-generate-line-info (generate line number 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_30 (default)</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_32</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_35</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_37</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_50</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_52</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_53</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_60</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_61</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_62</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_70</p>
                                             </li>
                                             <li class="li">
                                                <p class="p">compute_72</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>&nbsp;</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>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, char*<span>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, size_t*<span>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, char*<span>&nbsp;</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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, size_t*<span>&nbsp;</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_1g5356ce5063db232cd4330b666c62219b" id="group__compilation_1g5356ce5063db232cd4330b666c62219b" shape="rect">
                              <!-- --></a><span><a href="group__error.html#group__error_1gf2c5dc3a2ff02166a0c39f4bf4ece2a1" title="NVVM API call result code. " shape="rect">nvvmResult</a> nvvmLazyAddModuleToProgram (  <a href="group__compilation.html#group__compilation_1gd4334e62c0b6ddd8d32ef3da5c204162" title="NVVM Program. " shape="rect">nvvmProgram</a><span>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, const char*<span>&nbsp;</span><span class="keyword keyword apiItemName">buffer</span>, size_t<span>&nbsp;</span><span class="keyword keyword apiItemName">size</span>, const char*<span>&nbsp;</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 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, "&lt;unnamed&gt;" 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. The module may have NVVM IR version 1.5 in LLVM 5.0 bitcode format. Alternatively,
                                 the module may have NVVM IR version 1.2 in the LLVM 3.4 bitcode representation.
                              </p>
                              <p class="p">A module added using this API is lazily loaded - the only symbols loaded are those that are required by module(s) loaded using
                                 nvvmAddModuleToProgram. It is an error for a program to have all modules loaded using this API. Compiler may also optimize
                                 entities in this module by making them internal to the linked NVVM IR module, making them eligible for other optimizations.
                                 Due to these optimizations, this API to load a module is more efficient and should be used where possible.
                              </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>&nbsp;</span><span class="keyword keyword apiItemName">prog</span>, int <span>&nbsp;</span><span class="keyword keyword apiItemName">numOptions</span>, const char**<span>&nbsp;</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">Same as for <a class="xref" href="group__compilation.html#group__compilation_1g76ac1e23f5d0e2240e78be0e63450346" title="Compile the NVVM program." shape="rect">nvvmCompileProgram()</a>.
                              </p>
                              <p class="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_1g76ac1e23f5d0e2240e78be0e63450346" title="Compile the NVVM program." shape="rect">nvvmCompileProgram()</a></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><script type="text/javascript">_satellite.pageBottom();</script></body>
</html>