<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style xmlns="" type="text/css">
    /* This style sets a margin around the entire page */
        html, body {
            margin: 10px;
        }

        p {
            font: normal 16px verdana, sans-serif;
            margin: 0;
            padding-bottom:12px;
        }

        h1 {
            font: bold 25px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h2 {
            font: bold 19px verdana, sans-serif;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0; 
            padding-bottom: 0;
        }

        h3 {
            font: bold 19px verdana, sans-serif !important;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        li {
            font: normal 16px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 18px;
            padding-top: 0;
            padding-bottom: 0;
        }

        .pdparam {
            font: italic 16px verdana, sans-serif;
        }
		
		.term {
			font: italic 16px verdana, sans-serif;
			font-weight: normal;
		}	
		
		.type {
			font: normal 16px verdana, sans-serif !important;
		}			
		
		.parameter { 
			font-style: italic; 
			}

        a:link, a:visited {
            color: blue;
            text-decoration: none;
            font: normal 16px;
        }

        a:hover {
            background-color: #FFFF99;
            font: normal 16px;
        }

        div.funcsynopsis {
            text-align: left;
            background-color: #e6e6e6;
            font: normal 16px verdana, sans-serif;
			padding-top: 10px;
			padding-bottom: 10px;
        }

        div.funcsynopsis table {
            border-collapse: separate;
            font: normal 16px verdana, sans-serif;
        }

        div.funcsynopsis td {
            background-color: #e6e6e6;
            border: 0 solid #000;
            padding: 1px;
            font: normal 16px verdana, sans-serif;
        }

        div.refsect1 {
            font-family: verdana, sans-serif;
            font-size: 16px;
        }

        code.constant {
            font: normal 16px courier new, monospace !important;
        }
		
		span.errorname {
            font: normal 16px verdana, sans-serif !important;
        }

        code.function {
            font: bold 16px verdana, sans-serif !important;
        }
		
        b.fsfunc {
            font: bold 16px verdana, sans-serif !important;
        }
		
        code.varname {
            font: italic 16px verdana, sans-serif;
        }

        code.replaceable {
            font: italic 16px courier new, monospace;
        }

        code.funcdef {
            font: normal 16px verdana, sans-serif !important;
        }

        .citerefentry {
            font: normal 16px verdana, sans-serif !important;
        }

        .parameter {
            font-style: italic;
        }

        code.fsfunc {
            font: normal 16px verdana, sans-serif !important;
        }

        /* PARAMETER: This style controls spacing between the terms in Parameter section */
        dt {
            margin-top: 15px;
        }

        /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
        div.refsect1 table {
            width: 100%;
			margin-top: 10px;
            background-color: #FFF;
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
			font: normal 16px verdana, sans-serif;
        }
		
        div.refsect1 th {
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
            font: bold 16px verdana, sans-serif;
        }
		
        div.refsect1 td {
            background-color: #FFF;
            padding: 5px;
            vertical-align: text-top;
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
            font: normal 16px verdana, sans-serif;
        }
		
		  div.refsect1 p{
            font: normal 16px verdana, sans-serif;
            margin-top: 8px;
            margin-bottom: 8px;
            padding-top: 0;
            padding-bottom: 0;
        }
		

        /* EXAMPLE: These styles apply only to the Example section */
        div.refsect2 {
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 table {
            margin-top: 0;
            background-color: #e6e6e6;
            width: 100%;
            border: 0 solid #000;
            padding: 2px;
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 td {
            background-color: #e6e6e6;
            font: normal 16px courier new, monospace !important;
			white-space:pre;
        }

        /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
        div.refsect3 {
            font: normal 11px verdana, sans-serif;
            margin-top: 50px;
            margin-bottom: 20px;
            padding-top: 0;
            padding-bottom: 0;
        }
					
</style>
    <title>clBuildProgram</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
    <meta name="keywords" content="         &#10;                clBuildProgram&#10;            " />
  </head>
  <body>
    <div class="refentry">
      <a id="idm1"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <a xmlns="http://www.w3.org/1999/xhtml" id="clBuildProgram"></a>
        <h1>     
            clBuildProgram
        </h1>
        <p>          
            Builds (compiles and links) a program executable from the program source or binary.
        </p>
      </div>
      <div class="refsynopsisdiv">
        <h2></h2>
        <div class="funcsynopsis">
          <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
            <tr valign="bottom">
              <td>
                <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">
                    <a class="link" href="scalarDataTypes.html" target="_top">cl_int</a>
 <strong class="fsfunc">clBuildProgram</strong>
                (</code>
                <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="_top">cl_program</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">program</var>, </td>
              </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">cl_uint</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_devices</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="_top">cl_device_id</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*device_list</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">char</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*options</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">void</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">(*pfn_notify)(cl_program, <a class="link" href="scalarDataTypes.html" target="_top">void</a> *user_data)</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">void</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*user_data</var><code>)</code></td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="parameters"></a>
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                    <code class="varname">
						program
                    </code>
                </span>
            </dt>
            <dd>
              <p> 
						The program object
                    </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						device_list
                    </code>
                </span>
            </dt>
            <dd>
              <p>
						A pointer to a list of devices that are in <code class="varname">program</code>. If <code class="varname">device_list</code> is NULL value, the program executable is built for all devices associated with <code class="varname">program</code> for which a source or binary has been loaded. If <code class="varname">device_list</code> is a non-NULL value, the program executable is built for devices specified in this list for which a source or binary has been loaded.
                    </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						num_devices
					</code>
				</span>
            </dt>
            <dd>
              <p>
						The number of devices listed in <code class="varname">device_list</code>.
					</p>
            </dd>
            <dt>
              <span class="term">
                <code class="varname">options</code>
              </span>
            </dt>
            <dd>
              <p>
                    A pointer to a string that describes the build options to be used for building the program executable. The list of supported options is described in "Build Options" below. 
                </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						pfn_notify
					</code>
				</span>
            </dt>
            <dd>
              <p>
						A function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully). If <code class="varname">pfn_notify</code> is not NULL, <code class="function">clBuildProgram</code> does not need to wait for the build to complete and can return immediately. If <code class="varname">pfn_notify</code> is NULL, <code class="function">clBuildProgram</code> does not return until the build has completed. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.
					</p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						user_data
					</code>
				</span>
            </dt>
            <dd>
              <p>
						Passed as an argument when <code class="varname">pfn_notify</code> is called. <code class="varname">user_data</code> can be NULL.
                    </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1"><a id="notes"></a><h2>Notes</h2><p>
			OpenCL allows program executables to be built using the source or the binary.
        </p><p>
		The build options are categorized as pre-processor options, options for math intrinsics, options that control optimization and miscellaneous options. This specification defines a standard set of options that must be supported by an OpenCL compiler when building program executables
online or offline. These may be extended by a set of vendor- or platform-specific options.
		</p><h4><a id="idm89"></a>Preprocessor Options</h4>
		These options control the OpenCL preprocessor which is run on each program source before
actual compilation. -D options are processed in the order they are given in the options argument to <code class="function">clBuildProgram</code>.
   		<div class="variablelist"><dl class="variablelist"><dt><span class="term">-D name</span></dt><dd><p> 
						Predefine <code class="varname">name</code> as a macro, with definition 1.
                    </p></dd><dt><span class="term">-D name=definition</span></dt><dd><p> 
						The contents of <code class="varname">definition</code> are tokenized and processed as if they appeared during translation phase three in a `#define' directive. In particular, the definition will be truncated by embedded newline characters.
                    </p></dd><dt><span class="term">-I dir</span></dt><dd><p> 
						Add the directory <code class="varname">dir</code> to the list of directories to be searched for header files.
                    </p></dd></dl></div><div class="literallayout"><p><br />
</p></div><h4><a id="idm108"></a>Math Intrinsics Options</h4>
		These options control compiler behavior regarding floating-point arithmetic. These options trade
off between speed and correctness.
		<div class="variablelist"><dl class="variablelist"><dt><span class="term">-cl-single-precision-constant</span></dt><dd><p> 
						Treat double precision floating-point constant as single precision constant.
                    </p></dd><dt><span class="term">-cl-denorms-are-zero</span></dt><dd><p> 
						This option controls how single precision and double precision denormalized numbers are handled. If specified as a build option, the single precision denormalized numbers may be flushed to zero and if the optional extension for double precision is supported, double precision denormalized numbers may also be flushed to zero. This is intended to be a performance hint and the OpenCL compiler can choose not to flush denorms to zero if the device supports single precision (or double precision) denormalized numbers.
</p><p>
This option is ignored for single precision numbers if the device does not support single precision denormalized numbers i.e. CL_FP_DENORM bit is not set in
CL_DEVICE_SINGLE_FP_CONFIG.
</p><p>
</p><p>
This option is ignored for double precision numbers if the device does not support double precision or if it does support double precison but CL_FP_DENORM bit is not set in CL_DEVICE_DOUBLE_FP_CONFIG.
</p><p>
</p><p>
This flag only applies for scalar and vector single precision floating-point variables and computations on these floating-point variables inside a program. It does not apply to reading from or writing to image objects.
</p><p>
                    </p></dd></dl></div><div class="literallayout"><p><br />
</p></div><h4><a id="idm122"></a>Optimization Options</h4>
		These options control various sorts of optimizations. Turning on optimization flags makes the
compiler attempt to improve the performance and/or code size at the expense of compilation time
and possibly the ability to debug the program.
		<div class="variablelist"><dl class="variablelist"><dt><span class="term">-cl-opt-disable</span></dt><dd><p> 
						This option disables all optimizations. The default is optimizations are enabled.
                    </p></dd><dt><span class="term">-cl-strict-aliasing</span></dt><dd><p> 
						This option allows the compiler to assume the strictest aliasing rules.
                    </p></dd></dl></div><p>
			The following options control compiler behavior regarding floating-point arithmetic. These options trade off between performance and correctness and must be specifically enabled. These options are not turned on by default since it can result in incorrect output for programs which depend on an exact implementation of IEEE 754 rules/specifications for math functions.
</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">-cl-mad-enable</span></dt><dd><p> 
						Allow <code class="code">a * b + c</code> to be replaced by a <code class="code">mad</code>. The <code class="code">mad</code> computes <code class="code">a * b + c</code> with reduced accuracy. For example, some OpenCL devices implement <code class="code">mad</code> as truncate the result of <code class="code">a * b</code> before adding it to <code class="code">c</code>.
                    </p></dd><dt><span class="term">-cl-no-signed-zeros</span></dt><dd><p> 
						Allow optimizations for floating-point arithmetic that ignore the signedness of zero. IEEE 754 arithmetic specifies the behavior of distinct <code class="code">+0.0</code> and <code class="code">-0.0</code> values, which then prohibits simplification of expressions such as <code class="code">x+0.0</code> or <code class="code">0.0*x</code> (even with -clfinite-math only). This option implies that the sign of a zero result isn't significant.
                    </p></dd><dt><span class="term">-cl-unsafe-math-optimizations</span></dt><dd><p> 
						Allow optimizations for floating-point arithmetic that (a) assume that arguments and results are valid, (b) may violate IEEE 754 standard and (c) may violate the OpenCL numerical compliance requirements as defined in section 7.4 for single-precision floating-point, section 9.3.9 for double-precision floating-point, and edge case behavior in section 7.5. This option includes the -cl-no-signed-zeros and -cl-mad-enable options.
                    </p></dd><dt><span class="term">-cl-finite-math-only</span></dt><dd><p> 
						Allow optimizations for floating-point arithmetic that assume that arguments and results
are not NaNs or ±∞. This option may violate the OpenCL numerical compliance
requirements defined in in section 7.4 for single-precision floating-point,
section 9.3.9 for double-precision floating-point, and edge case behavior in section 7.5.
                    </p></dd><dt><span class="term">-cl-fast-relaxed-math</span></dt><dd><p> 
						Sets the optimization options -cl-finite-math-only and -cl-unsafe-math-optimizations.
This allows optimizations for floating-point arithmetic that may violate the IEEE 754
standard and the OpenCL numerical compliance requirements defined in the specification in section 7.4 for single-precision floating-point, section 9.3.9 for double-precision floating-point,
and edge case behavior in section 7.5. This option causes the preprocessor macro
<code class="code">__FAST_RELAXED_MATH__</code> to be defined in the OpenCL program.
                    </p></dd></dl></div><div class="literallayout"><p><br />
</p></div><h4><a id="idm167"></a>Options to Request or Suppress Warnings</h4>
		Warnings are diagnostic messages that report constructions which are not inherently erroneous
but which are risky or suggest there may have been an error. The following languageindependent
options do not enable specific warnings but control the kinds of diagnostics
produced by the OpenCL compiler.
		<div class="variablelist"><dl class="variablelist"><dt><span class="term">-w</span></dt><dd><p> 
						Inhibit all warning messages.
                    </p></dd><dt><span class="term">-Werror</span></dt><dd><p> 
						Make all warnings into errors.
                    </p></dd></dl></div></div>
      <div class="refsect1">
        <a id="errors"></a>
        <h2>Errors</h2>
        <p>
			<code class="function">clBuildProgram</code> returns <span class="errorname">CL_SUCCESS</span> if the function is executed successfully. Otherwise, it returns one of the following errors:
		</p>
        <div class="itemizedlist">
          <ul class="itemizedlist" style="list-style-type: disc; ">
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_PROGRAM</span> if <code class="varname">program</code> is not a valid program object.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if <code class="varname">device_list</code> is NULL and <code class="varname">num_devices</code> is greater than zero, or if <code class="varname">device_list</code> is not NULL and <code class="varname">num_devices</code> is zero.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if <code class="varname">pfn_notify</code> is NULL but <code class="varname">user_data</code> is not NULL.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_DEVICE</span> if OpenCL devices listed in <code class="varname">device_list</code> are not in the list of devices associated with <code class="varname">program</code>.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_BINARY</span> if <code class="varname">program</code> is created with <a class="citerefentry" href="clCreateWithProgramWithBinary.html"><span class="citerefentry"><span class="refentrytitle">clCreateWithProgramWithBinary</span></span></a> and
devices listed in <code class="varname">device_list</code> do not have a valid program binary loaded.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_BUILD_OPTIONS</span> if the build options specified by <code class="varname">options</code> are invalid.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if the build of a program executable for any of the devices
				listed in <code class="varname">device_list</code> by a previous call to clBuildProgram for <code class="varname">program</code> has not
				completed.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_COMPILER_NOT_AVAILABLE</span> if <code class="varname">program</code> is created with
				clCreateProgramWithSource and a compiler is not available i.e.
				<span class="errorname">CL_DEVICE_COMPILER_AVAILABLE</span> specified in the table of OpenCL Device Queries for <a class="citerefentry" href="clGetDeviceInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceInfo</span></span></a> is set to <span class="errorname">CL_FALSE</span>.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_BUILD_PROGRAM_FAILURE</span> if there is a failure to build the program executable.
				This error will be returned if <code class="function">clBuildProgram</code> does not return until the build has
				completed.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if there are kernel objects attached to <code class="varname">program</code>.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_OUT_OF_HOST_MEMORY</span> if there is a failure to allocate resources required by the
				OpenCL implementation on the host.				
			</li>
          </ul>
        </div>
      </div>
      <div class="refsect1">
        <a id="specification"></a>
        <h2>Specification</h2>
        <p>
            <img src="pdficon_small1.gif" />
			
				      
            <a href="http://www.khronos.org/registry/cl/specs/opencl-1.0.pdf#page=91" target="OpenCL Spec">OpenCL Specification</a>
        </p>
      </div>
      <div class="refsect1">
        <a id="seealso"></a>
        <h2>Also see</h2>
        <p>
            <a class="citerefentry" href="clGetDeviceInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceInfo</span></span></a>
        </p>
      </div>
      <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>Copyright © 2007-2009 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials. 
</div>
    </div>
  </body>
</html>
