Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

ASSUMPTION Clause

Parallel Directive Clause: Specifies information about the expected properties of a program that can be used by the compiler for optimization.

Syntax

assumption-clause

assumption-clause

Is one of the following:

ABSENT (directive-name [[, directive-name]...])

Tells the compiler that directive-name does not match any construct encountered in the scope of the directive containing this clause.

CONTAINS (directive-name [[, directive-name]...])

Hints to the compiler that directive-name is assumed to match at least one construct within the scope of the directive containing this clause.

HOLDS (scalar-logical-expression)

Tells the compiler that the scalar-logical-expression evaluates to .TRUE. in the scope of the directive containing this clause.

The scalar-logical-expression is not evaluated by the clause and has no observable effect by appearing in the clause.

NO_OPENMP

Tells the compiler that there is no OpenMP* code to be executed in the scope of the directive containing this clause.

NO_OPENMP_ROUTINES

Tells the compiler that no OpenMP runtime routines are called from within the scope of the directive containing this clause.

NO_PARALLELISM

Tells the compiler the following:

  • There will not be any OpenMP implicit or explicit tasks generated by execution of the code in the scope of the directive containing this clause.

  • No SIMD constructs are executed in the scope of the directive containing this clause.

The NO_OPENMP, NO_OPENMP_ROUTINES, and NO_PARALLELISM clauses can appear at most once in a directive.

directive-name

Is an OpenMP executable directive name that is not an END directive-name directive. It cannot be a declarative, loop transformation, informational, or a non-executable utility directive.

A directive-name listed in an assumption-clause can appear at most once in the directive. You cannot specify a combined or composite directive name.

Description

If the assumptions specified by any of the assumption-clauses are incorrect, the program behavior is unspecified.

A construct matches directive-name if it has the same name as directive-name, or if it is a combined construct with a constituent construct that has a name that matches directive-name.