The mode sets how eager a transformation should be applied.
Declared in <llvm/Transforms/Utils/LoopUtils.h>
enum TransformationMode;
| Name | Description |
|---|---|
TM_Unspecified | The pass can use heuristics to determine whether a transformation should be applied. |
TM_Enable | The transformation should be applied without considering a cost model. |
TM_Disable | The transformation should not be applied. |
TM_Force | Force is a flag and should not be used alone. |
TM_ForcedByUser | The transformation was directed by the user, e.g. by a #pragma in the source code. If the transformation could not be applied, a warning should be emitted. |
TM_SuppressedByUser | The transformation must not be applied. For instance, `#pragma clang loop unroll(disable)` explicitly forbids any unrolling to take place. Unlike general loop metadata, it must not be dropped. Most passes should not behave differently under TM_Disable and TM_SuppressedByUser. |
| Name | Description |
|---|---|
hasDistributeTransformation | Get the distribute transformation mode for L. |
hasLICMVersioningTransformation | Get the LICM versioning transformation mode for L. |
hasUnrollAndJamTransformation | Get the unroll-and-jam transformation mode for L. |
hasUnrollTransformation | Get the unroll transformation mode for L. |
hasVectorizeTransformation | Get the vectorize transformation mode for L. |