Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- Uniformity.h --------------------------------------*- C++ -*--------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
//
10
//===----------------------------------------------------------------------===//
11
 
12
#ifndef LLVM_ADT_UNIFORMITY_H
13
#define LLVM_ADT_UNIFORMITY_H
14
 
15
namespace llvm {
16
 
17
/// Enum describing how instructions behave with respect to uniformity and
18
/// divergence, to answer the question: if the same instruction is executed by
19
/// two threads in a convergent set of threads, will its result value(s) be
20
/// uniform, i.e. the same on both threads?
21
enum class InstructionUniformity {
22
  /// The result values are uniform if and only if all operands are uniform.
23
  Default,
24
 
25
  /// The result values are always uniform.
26
  AlwaysUniform,
27
 
28
  /// The result values can never be assumed to be uniform.
29
  NeverUniform
30
};
31
 
32
} // namespace llvm
33
#endif // LLVM_ADT_UNIFORMITY_H