Intel® FPGA SDK for OpenCL™ Standard Edition: Programming Guide

ID 683342
Date 4/22/2019
Public
Document Table of Contents

A.1.2. OpenCL C Programming Language Restrictions

The Intel® FPGA SDK for OpenCL™ conforms with the OpenCL Specification restrictions on specific programming language features, as described in section 6.8 of the OpenCL Specification version 1.0 .
Important: The Intel® FPGA SDK for OpenCL™ Offline Compiler does not enforce restrictions on certain disallowed programming language features. Ensure that your kernel code does not contain features that the OpenCL Specification version 1.0 does not support.
Feature Support Status Notes
pointer assignments between address spaces Arguments to __kernel functions declared in a program that are pointers must be declared with the __global, __constant, or __local qualifier.

The offline compiler enforces the OpenCL restriction against pointer assignments between address spaces.

pointers to functions X The offline compiler does not enforce this restriction.
structure-type kernel arguments X Convert structure arguments to a pointer to a structure in global memory.
images X The SDK does not support images.
bit fields X The offline compiler does not enforce this restriction.
variable length arrays and structures X
variable macros and functions X
C99 headers X
extern, static, auto, and register storage-class specifiers X The offline compiler does not enforce this restriction.
predefined identifiers Use the -D option of the aoc command to provide preprocessor symbol definitions in your kernel code.
recursion X The offline compiler does not return an error for this restriction, but this feature is not supported.
irreducible control flow X The offline compiler does not return an error for this restriction, but this feature is not supported.
writes to memory of built-in types less than 32 bits in size Store operations less than 32 bits in size might result in lower memory performance.
declaration of arguments to __kernel functions of type event_t X The offline compiler does not enforce this restriction.
elements of a struct or a union belonging to different address spaces X The offline compiler does not enforce this restriction.
Warning: Assigning elements of a struct or a union to different address spaces might cause a fatal error.
Support Status column legend:
Symbol Description
The feature is supported, and there might be a clarification for the supported feature in the Notes column
The feature is supported with exceptions identified in the Notes column.
X The feature is not supported.