Licensed Materials - Property of IBM
Copyright IBM Corp. 2009, 2012.
This document describes the markup language used by the compiler report in XML format. The compiler report records the code transformation attempts that the compiler performed during compilation.
High performance compilers like IBM XL C, C++ and Fortran have the capability to achieve optimization by performing code transformations. However, due to various constraints, such as source code limitations and incompatible compile options, the compilers may not be able to successfully apply all of the attempted transformations. To achieve higher application performance, application tuning is required. In general, this task is extremely time consuming and requires experienced and knowledgeable application tuners. With the aims of easing the difficulties of application tuning and improving the productivity of application tuners, IBM XL C, C++ and Fortran compilers now produce compiler report in XML format. During compilation, the report records the areas of the code where transformations have been attempted. Moreover, the report identifies the type of the transformation attempt and determines whether it has been successfully applied. The report is emitted in XML 1.0, which is a standard format for tooling consumption. It is expected that application tuners can achieve automatic performance tuning by creating their own tooling to consume the report.
The compiler transformation markup language is a specification for describing code transformation attempts and it is used by the compiler report. The structure and content of this markup language is defined by an XML schema provided with the compiler package. To assist tooling writers, this document is provided as a translation of the XML schema with plain descriptions.
The compiler report is versioned. The version information is encoded within the version attribute of the document root element. The version consists of two parts, the major version and the minor version separated by a dot (major.minor). The versioning model considers the following cases:
Case 1. Introduction of compatible changes
This includes cases like the addition of elements, attributes, or enumerator values. The minor version will be incremented (e.g. 1.0 -> 1.1). To achieve backward compatibility (tooling based on a newer schema can process an older report), the additions will be defined as optional in the newer schema. To achieve forward compatibility (tooling based on an older schema can process a newer report), tooling consuming the compiler report should ignore all unrecognized content.
Case 2. Introduction of incompatible changes
This includes cases like the removal of required elements or attributes. Both the major version and the default namespace will be updated (e.g. 1.1 -> 2.0). Backward and forward compatibility will no longer be maintained.
An XML namespace is a method of qualifying element and attribute names used in an XML document by prefixing the names with a URI. For the compiler report, the elements are qualified with the default namespace, while the attributes are not qualified. The default namespace used in this version of compiler report is:
http://www.ibm.com/2010/04/CompilerTransformation
The default namespace is part of the versioning model. It will be updated when an incompatible change is introduced. This prevents tooling from mistakenly parsing an incompatible compiler report since the tooling would be expecting a different namespace.
A compilation can consist of multiple steps, such as compiling and linking. For each of compilation step executed by the IBM XL C, C++, and Fortran compilers, the recorded information will reside within its corresponding <CompilationStep> element. There are four sections in a <CompilationStep> element. The <StepDetails> element contains general information regarding the compilation step, such as the compiler name and the compilation date. The <ProgramHierarchy> element contains program information, such as the source files, source regions, and loops. This program information is referenced by the transformation attempts listed within the <TransformationHierarchy> element. To give granularity to the wide variety of transformations, they are further categorized by the <IntraTransformation> (intra-procedural transformations) and <InterTransformation> (inter-procedural transformation) elements. The <ProfilingReports> element contains profiling information.
The links in the "Element" column provide more information about each specific element and its attributes.
Element | Description |
XLTransformationReport | This is the document root element. |
CompilationStep | This element contains the recorded information of a compilation step. |
StepDetails | This element contains general information of a compilation step. |
Detail | This element describes a piece of general information. |
FieldTitle | This element contains the title of the description. |
FieldValue | This element contains the value of the description. |
ProgramHierarchy | This element contains the program information. |
FileList | This element contains the list of source files. |
File | This element describes a source file. |
RegionList | This element contains the list of source regions of a source file. |
Region | This element describes a source region. |
Pseudocode | This element contains the pseudocode. |
PseudoLoop | This element describes a pseudocode loop. |
PseudoBlock | This element describes a pseudocode block. |
PseudoLine | This element describes a line in the pseudocode. |
LoopList | This element contains the list of loops of a source region. |
Loop | This element describes a loop. |
TransformationHierarchy | This element contains the transformation attempts. |
IntraTransformationList | This element contains the list of intra-procedural transformations. |
LoopTransformationList | This element contains the list of loop transformation attempts. |
LoopTransform | This element describes a loop transformation attempt. |
AttributeList | This element contains the list of attributes of a loop transformation attempt. |
Attribute | This element describes an attribute. |
AttributeTitle | This element contains the title of the attribute. |
AttributeValue | This element contains the value of the attribute. |
InterTransformationList | This element contains the list of inter-procedural transformations. |
InlineOptimizationList | This element contains the list of inline optimization attempts. |
InlineOpt | This element describes an inline optimization attempt. |
DataReorganizationList | This element contains the list of performed data reorganizations. |
DataReorg | This element describes a performed data reorganization. |
ProfilingReports | This element contains profiling information. |
BlockCounterList | This element contains the list of block counter information. |
BlockCounter | This element describes a block counter of a source region. |
BlockList | This element contains the list of blocks of a block counter. |
Block | This element describes a block of a block counter. |
CallCounterList | This element contains the list of call counter information. |
CallCounter | This element describes a call counter of a source region. |
CallList | This element contains the list of calls of a call counter. |
Call | This element describes a call of a call counter. |
ValueProfileList | This element contains the list of value profile information. |
ValueProfile | This element describes the statement that was profiled. |
ValueList | This element contains the list of values that were profiled. |
Value | This element describes a particular value. |
CacheMissList | This element contains the list of cache miss information. |
CacheMiss | This element describes a piece of cache miss information. |
Description: This is the document root element.
Parent element: None
Element | Occurrence (min - max) | Description |
CompilationStep | 1 - unbounded | This element contains the recorded information of a compilation step. |
Attribute | Value | Description |
version | Must be 1.x for this schema. | Required. Compiler report version. |
Description: This element contains the recorded information of a compilation step.
Parent element: <XLTransformationReport>
Element | Occurrence (min - max) | Description |
StepDetails | 1 - 1 | This element contains general information of a compilation step. |
ProgramHierarchy | 1 - 1 | This element contains the program information. |
TransformationHierarchy | 1 - 1 | This element contains the transformation attempts. |
ProfilingReports | 1 - 1 | This element contains profiling information. |
Attribute | Value | Description |
name | compiling | linking | Required. Name of compilation step. |
Description: This element contains general information of a compilation step.
Parent element: <CompilationStep>
Element | Occurrence (min - max) | Description |
Detail | 0 - unbounded | This element describes a piece of general information. |
Attribute: None
Description: This element describes a piece of general information.
Parent element: <StepDetails>
Element | Occurrence (min - max) | Description |
FieldTitle | 1 - 1 | This element contains the title of the description. |
FieldValue | 1 - 1 | This element contains the value of the description. |
Attribute: None
Description: This element contains the title of the description.
Parent element: <Detail>
Child element: None
Attribute: None
Description: This element contains the value of the description.
Parent element: <Detail>
Child element: None
Attribute: None
Description: This element contains the program information.
Parent element: <CompilationStep>
Element | Occurrence (min - max) | Description |
FileList | 0 - 1 | This element contains the list of source files. |
Attribute: None
Description: This element contains the list of source files.
Parent element: <ProgramHierarchy>
Element | Occurrence (min - max) | Description |
File | 1 - unbounded | This element describes a source file. |
Attribute: None
Description: This element describes a source file.
Parent element: <FileList>
Element | Occurrence (min - max) | Description |
RegionList | 0 - 1 | This element contains the list of source regions of a source file. |
Attribute | Value | Description |
id | positive integer | Required. Unique source file identifier. |
name | string | Required. Name of source file. |
Description: This element contains the list of source regions of a source file.
Parent element: <File>
Element | Occurrence (min - max) | Description |
Region | 1 - unbounded | This element describes a source region. |
Attribute: None
Description: This element describes a source region.
Parent element: <RegionList>
Element | Occurrence (min - max) | Description |
Pseudocode | 0 - 1 | This element contains the pseudocode. |
LoopList | 0 - 1 | This element contains the list of loops of a source region. |
Attribute | Value | Description |
id | positive integer | Required. Unique source region identifier. |
name | string | Required. Name of source region. |
demangledName | string | Optional. Demangled name of source region. |
startLineNumber | positive integer | Optional. Start line number of source region. |
endLineNumber | positive integer | Optional. End line number of source region. |
Description: This element contains the pseudocode.
Parent element: <Region>
Element | Occurrence (min - max) | Description |
PseudoLoop | 0 - unbounded | This element describes a pseudocode loop. |
PseudoBlock | 0 - unbounded | This element describes a pseudocode block. |
PseudoLine | 0 - unbounded | This element describes a line in the pseudocode. |
Attribute: None
Description: This element describes a pseudocode loop.
Parent element: <Pseudocode>
Element | Occurrence (min - max) | Description |
PseudoLoop | 0 - unbounded | This element describes a pseudocode loop. |
PseudoBlock | 0 - unbounded | This element describes a pseudocode block. |
PseudoLine | 0 - unbounded | This element describes a line in the pseudocode. |
Attribute | Value | Description |
index | positive integer | Required. Unique loop index within a source region. |
Description: This element describes a pseudocode block.
Parent element: <Pseudocode>
Element | Occurrence (min - max) | Description |
PseudoLoop | 0 - unbounded | This element describes a pseudocode loop. |
PseudoBlock | 0 - unbounded | This element describes a pseudocode block. |
PseudoLine | 0 - unbounded | This element describes a line in the pseudocode. |
Attribute | Value | Description |
index | positive integer | Required. Unique block index within a source region. |
Description: This element describes a line in the pseudocode.
Parent element: <Pseudocode>
Child element: None
Attribute | Value | Description |
fileId | positive integer | Optional. Maps the line to a source file. |
lineNumber | positive integer | Optional. Maps the line to a source line. |
Description: This element contains the list of loops of a source region.
Parent element: <Region>
Element | Occurrence (min - max) | Description |
Loop | 1 - unbounded | This element describes a loop. |
Attribute: None
Description: This element describes a loop.
Parent element: <LoopList>
Child element: None
Attribute | Value | Description |
index | positive integer | Required. Unique loop index within a source region. |
startLineNumber | positive integer | Optional. Start line number of loop. |
endLineNumber | positive integer | Optional. End line number of loop. |
parentLoopIndex | positive integer | Optional. Index of the parent loop. |
nestLevel | nonnegative integer | Optional. Nest level within the parent loop. |
minCost | nonnegative integer | Optional. Minimum loop execution cost. |
maxCost | nonnegative integer | Optional. Maximum loop execution cost. |
iterKind | array | default | exact | PDF | user | estimated | Optional. Type of iteration count. |
iterCount | nonnegative integer | Optional. Number of iterations in the loop. |
residual | true | false | Optional. Residual iterations present after optimizations. |
perfectNest | true | false | Optional. Loop is perfect nest. |
wellBehaved | true | false | Optional. Loop has a single entry and exit. |
mayThrow | true | false | Optional. Loop contains a call which may result in a thrown exception, longjmp or exit. |
bumpNormalized | true | false | Optional. Loop bump is normalized to 1. |
guarded | true | false | Optional. Loop is guarded to execute at least one iteration. |
irreducible | true | false | Optional. Loop corresponds to an irreducible region. |
lowerBoundNormalized | true | false | Optional. Loop lower bound is zero. |
Description: This element contains the transformation attempts.
Parent element: <CompilationStep>
Element | Occurrence (min - max) | Description |
IntraTransformationList | 0 - 1 | This element contains the list of intra-procedural transformations. |
InterTransformationList | 0 - 1 | This element contains the list of inter-procedural transformations. |
Attribute: None
Description: This element contains the list of intra-procedural transformations.
Parent element: <TransformationHierarchy>
Element | Occurrence (min - max) | Description |
LoopTransformationList | 0 - 1 | This element contains the list of loop transformation attempts. |
Attribute: None
Description: This element contains the list of loop transformation attempts.
Parent element: <IntraTransformationList>
Element | Occurrence (min - max) | Description |
LoopTransform | 1 - unbounded | This element describes a loop transformation attempt. |
Attribute: None
Description: This element describes a loop transformation attempt.
Parent element: <LoopTransformationList>
Element | Occurrence (min - max) | Description |
AttributeList | 0 - 1 | This element contains the list of attributes of a loop transformation attempt. |
Attribute | Value | Description |
seq | positive integer | Required. Sequence number of loop transformation attempt. |
type | see section "Transformation Types" | Required. Type of loop transformation attempt. |
result | success | fail | Required. Outcome of loop transformation attempt. |
regionId | positive integer | Optional. Maps the loop transformation attempt to a source region. |
loopIndex | positive integer | Optional. Maps the loop transformation attempt to a loop index. |
lineNumber | positive integer | Optional. Maps the loop transformation attempt to a source line. |
phase | Driver | C++ Front End | C Front End | Fortran Front End | Low Level Optimizer | High Level Optimizer | Required. Compilation phase of this loop transformation is attempted. |
Description: This element contains the list of attributes of a loop transformation attempt.
Parent element: <LoopTransform>
Element | Occurrence (min - max) | Description |
Attribute | 1 - unbounded | This element describes an attribute. |
Attribute: None
Description: This element describes an attribute.
Parent element: <AttributeList>
Element | Occurrence (min - max) | Description |
AttributeTitle | 1 - 1 | This element contains the title of the attribute. |
AttributeValue | 1 - 1 | This element contains the value of the attribute. |
Attribute: None
Description: This element contains the title of the attribute.
Parent element: <Attribute>
Child element: None
Attribute: None
Description: This element contains the value of the attribute.
Parent element: <Attribute>
Child element: None
Attribute: None
Description: This element contains the list of inter-procedural transformations.
Parent element: <TransformationHierarchy>
Element | Occurrence (min - max) | Description |
InlineOptimizationList | 0 - 1 | This element contains the list of inline optimization attempts. |
DataReorganizationList | 0 - 1 | This element contains the list of performed data reorganizations. |
Attribute: None
Description: This element contains the list of inline optimization attempts.
Parent element: <InterTransformationList>
Element | Occurrence (min - max) | Description |
InlineOpt | 1 - unbounded | This element describes an inline optimization attempt. |
Attribute: None
Description: This element describes an inline optimization attempt.
Parent element: <InlineOptimizationList>
Child element: None
Attribute | Value | Description |
seq | positive integer | Required. Sequence number of inline attempt. |
type | see section "Transformation Types" | Required. Type of inline attempt. |
result | success | fail | Required. Outcome of inline attempt. |
callerRegionId | positive integer | Optional. Maps the caller to a source region. |
calleeRegionId | positive integer | Optional. Maps the callee to a source region. |
callsiteFileId | positive integer | Optional. Maps the callsite to a source file. |
callsiteLineNumber | positive integer | Optional. Maps the callsite to a source line. |
callsiteColumnNumber | positive integer | Optional. Maps the callsite to a source column. |
phase | Driver | C++ Front End | C Front End | Fortran Front End | Low Level Optimizer | High Level Optimizer | Required. Compilation phase of this inline is attempted. |
Description: This element contains the list of performed data reorganizations.
Parent element: <InterTransformationList>
Element | Occurrence (min - max) | Description |
DataReorg | 1 - unbounded | This element describes a performed data reorganization. |
Attribute: None
Description: This element describes a performed data reorganization.
Parent element: <DataReorganizationList>
Child element: None
Attribute | Value | Description |
seq | positive integer | Required. Sequence number of performed data reorganization. |
type | see section "Transformation Types" | Required. Type of data reorganization. |
dataName | string | Required. Name of data involved in the performed data reorganization. |
category | string | Optional. Category of the performed data reorganization. |
regionId | positive integer | Optional. Maps the performed data reorganization to a source region. |
lineNumber | positive integer | Optional. Maps the performed data reorganization to a source line. |
phase | Driver | C++ Front End | C Front End | Fortran Front End | Low Level Optimizer | High Level Optimizer | Required. Compilation phase of this data reorganization is performed. |
Description: This element contains profiling information.
Parent element: <CompilationStep>
Element | Occurrence (min - max) | Description |
BlockCounterList | 0 - 1 | This element contains the list of block counter information. |
CallCounterList | 0 - 1 | This element contains the list of call counter information. |
ValueProfileList | 0 - 1 | This element contains the list of value profile information. |
CacheMissList | 0 - 1 | This element contains the list of cache miss information. |
Attribute: None
Description: This element contains the list of block counter information.
Parent element: <ProfilingReports>
Element | Occurrence (min - max) | Description |
BlockCounter | 1 - unbounded | This element describes a block counter of a source region. |
Attribute: None
Description: This element describes a block counter of a source region.
Parent element: <BlockCounterList>
Element | Occurrence (min - max) | Description |
BlockList | 0 - 1 | This element contains the list of blocks of a block counter. |
Attribute | Value | Description |
regionId | positive integer | Required. Maps the block counter to a source region. |
execCount | nonnegative integer | Required. Execution count of the source region. |
coveredBlock | nonnegative integer | Optional. Blocks in the source region that are executed. |
totalBlock | nonnegative integer | Optional. Total blocks in the source region. |
Description: This element contains the list of blocks of a block counter.
Parent element: <BlockCounter>
Element | Occurrence (min - max) | Description |
Block | 1 - unbounded | This element describes a block of a block counter. |
Attribute: None
Description: This element describes a block of a block counter.
Parent element: <BlockList>
Child element: None
Attribute | Value | Description |
index | positive integer | Required. Maps to a block index. |
execCount | nonnegative integer | Required. Execution count of the block. |
startLineNumber | positive integer | Optional. Start line number of block. |
endLineNumber | positive integer | Optional. End line number of block. |
Description: This element contains the list of call counter information.
Parent element: <ProfilingReports>
Element | Occurrence (min - max) | Description |
CallCounter | 0 - unbounded | This element describes a call counter of a source region. |
Attribute: None
Description: This element describes a call counter of a source region.
Parent element: <CallCounterList>
Element | Occurrence (min - max) | Description |
CallList | 0 - 1 | This element contains the list of calls of a call counter. |
Attribute | Value | Description |
regionId | positive integer | Required. Maps the call counter to a source region. |
execCount | nonnegative integer | Required. Execution count of the source region. |
coveredCall | nonnegative integer | Optional. Calls in the source region that are executed. |
totalCall | nonnegative integer | Optional. Total calls in the source region. |
Description: This element contains the list of calls of a call counter.
Parent element: <CallCounter>
Element | Occurrence (min - max) | Description |
Call | 1 - unbounded | This element describes a call of a call counter. |
Attribute: None
Description: This element describes a call of a call counter.
Parent element: <CallList>
Child element: None
Attribute | Value | Description |
name | string | Required. Name of the call. |
execCount | nonnegative integer | Required. Execution count of the call. |
lineNumber | positive integer | Optional. Maps the call to a source line. |
Description: This element contains the list of value profile information.
Parent element: <ProfilingReports>
Element | Occurrence (min - max) | Description |
ValueProfile | 1 - unbounded | This element describes the statement that was profiled. |
Attribute: None
Description: This element describes the statement that was profiled.
Parent element: <ValueProfileList>
Element | Occurrence (min - max) | Description |
ValueList | 0 - 1 | This element contains the list of values that were profiled. |
Attribute | Value | Description |
name | string | Required. Type of Value that was profiled. |
regionId | positive integer | Required. Maps the value profile to a source region. |
lineNumber | positive integer | Required. Maps the value profile to a source line. |
numberOfValues | nonnegative integer | Required. Number of unique values profiled. |
symbolName | nonnegative integer | Optional. Name of the symbol profiled. |
Description: This element contains the list of values that were profiled.
Parent element: <ValueProfile>
Element | Occurrence (min - max) | Description |
Value | 1 - unbounded | This element describes a particular value. |
Attribute: None
Description: This element describes a particular value.
Parent element: <ValueList>
Child element: None
Attribute | Value | Description |
name | string | Required. Value that was profiled. |
execCount | nonnegative integer | Required. Number of times the value was observed. |
Description: This element contains the list of cache miss information.
Parent element: <ProfilingReports>
Element | Occurrence (min - max) | Description |
CacheMiss | 0 - unbounded | This element describes a piece of cache miss information. |
Attribute: None
Description: This element describes a piece of cache miss information.
Parent element: <CacheMissList>
Child element: None
Attribute | Value | Description |
memoryReference | string | Required. Memory reference of the cache miss. |
regionId | positive integer | Optional. Maps the cache miss to a source region. |
lineNumber | positive integer | Optional. Maps the cache miss to a source line. |
cacheLevel | nonnegative integer | Optional. Cache level. |
cacheMissCount | nonnegative integer | Optional. Cache miss count. |
cacheMissRate | decimal | Optional. Cache miss rate. |
Type | Description |
AliasingInducedDependence | An attempt to SIMD vectorize failed because of aliasing induced dependence. |
AssistThreadDataPrefetch | Assist thread for data prefetching was generated. |
BasicBlockThresholdExceeded | Loop cannot be modulo scheduled because the number of basic blocks exceeds the threshold. |
CompleteLoopUnroll | Complete loop unroll was performed. |
ContainsControlFlow | An attempt to SIMD vectorize failed because the loop contains control flow. |
ContainsFunctionCall | An attempt to SIMD vectorize failed because the loop contains a function call. |
ContainsNonVectorizableReduction | An attempt to SIMD vectorize failed because the loop contains a non-vectorizable reduction. |
ContainsVolatileReference | An attempt to SIMD vectorize failed because the loop contains a volatile memory reference. |
ControlFlowTooComplicated | Loop cannot be modulo scheduled because the control flow is too complicated. |
DataDependence | An attempt to SIMD vectorize failed because of a data dependence. |
DataPrefetch | Data prefetching was performed. |
FullLoopUnroll | Full loop unroll was performed. |
InnerLoopUnroll | Inner loop unroll was performed. |
InstructionThresholdExceeded | Loop cannot be modulo scheduled because the number of instructions exceeds the threeshold. |
IterationCountTooSmall | An attempt to SIMD vectorize failed because the iteration count is too small. |
LoopBlocked | Loop was blocked. |
LoopBlockGather | Gather/Scatter was performed. |
LoopCarriedDependence | Loop was not automatically parallelized because variable carried dependence. |
LoopCollapsed | Loop has been collapsed. |
LoopDistribution | A child loop was created by the distribution of its parent loop. |
LoopFusion | Loops were fused. |
LoopHasCycles | Loops has cycles. |
LoopHasDependencies | Loop was not unrolled-and-fused because it contains dependencies which prevent unroll-and-fuse. |
LoopHasNoDataDependence | Loop was not unrolled-and-fused because data dependence was not computed. |
LoopHasPrivateVariables | Private variables recognized in loop nest. |
LoopHasSideEffects | Loop was not unrolled-and-fused because it has side effects. |
LoopHasSideEffectsCall | Loop was not automatically parallelized because it contains a call that may have side effects. |
LoopHasSpills | Loop has spills. |
LoopHasUserReduction | Loop was not unrolled-and-fused because it contains user reduction. |
LoopHasVolatileVariable | Loop was not automatically parallelized because variable is volatile. |
LoopInterchange | Loop interchanging was applied to loop nest. |
LoopNestGather | Gather/Scatter was applied to loop nest. |
LoopNotCountable | Loop was not normalized because it is not countable. |
LoopNotPerfectNest | Loop was not unrolled-and-fused because it is not a perfect nest. |
LoopNotSimdize | An attempt to SIMD vectorize failed. |
LoopParallelized | Loop was automatically parallelized. |
LoopReversal | Loop reversal was applied to loop nest. |
LoopRolled | Loop rolled has been applied. |
LoopSimdize | SIMD vectorization was performed. |
LoopUnroll | Loop unroll was performed. |
LoopVector | Loop vectorization was performed. |
LoopVectorVersion | Vector versioning was performed. |
ModuloSchedule | Loop was modulo scheduled. |
NonInnermostLoop | An attempt to SIMD vectorize failed because the loop is not the innermost loop. |
NonNormalizableLoop | An attempt to optimize loop failed because the loop is not normalizable. |
NonStrideOneInShift | An attempt to SIMD vectorize failed because the loop contains non-stride-one references with unsupported alignment. |
NonStrideOneStore | An attempt to SIMD vectorize failed because the loop contains a non-stride-one store. |
NonVectorizableAlignment | An attempt to SIMD vectorize failed because the loop contains variables with a non-vectorizable alignment. |
NonVectorizableStride | An attempt to SIMD vectorize failed because the loop contains a non-vectorizable stride. |
NotProfitable | An attempt to SIMD vectorize failed because it is not profitable to vectorize. |
NoValidSchedule | Loop cannot be modulo scheduled because it cannot find a valid schedule with a reasonable cycle count. |
OuterLoopUnroll | An outer loop unroll was performed. |
ProhibitedByOption | An attempt to SIMD vectorize failed because SIMD vectorization has been disabled by an option. |
RegisterPressureTooHigh | Loop cannot be modulo scheduled because the register pressure is too high. |
StrideOneRequireBF1 | An attempt to SIMD vectorize failed because the loop contains blocks of non-stride-one references that cannot be extracted. |
UnrollLimitExceeded | Loop was not unrolled-and-fused because requested unroll factor(s) exceeded limit for nest. |
UnsupportedOperation | An attempt to SIMD vectorize failed because the loop contains an unsupported operation. |
UnsupportedStructure | An attempt to SIMD vectorize failed because the loop contains an unsupported structure. |
UnsupportedVectorTypes | An attempt to SIMD vectorize failed because the loop contains unsupported vector types. |
UPCArrayIdiom | Transformed the following fine grained shared access. |
UPCArrayIdiomBlkFactorOne | Unable to replace fine grained accesses. |
UPCArrayIdiomDiffBlkFactors | Unsupported array idiom. |
UPCCoalesing | Coalesced the following shared references. |
UPCForallIVUsedInMultipleDims | upc_forall optimization failed: affinity expression references the induction variable in multiple array dimensions. |
UPCForallLoopVersioned | upc-forall loop has been versioned. |
UPCForallNotInnerParallel | upc_forall optimization failed: affinity expression does not uses the induction variable in the innermost array dimension. |
UPCForallOpt | upc_forall loop has been optimized. |
UPCForallVersioningPtrNotInvariant | upc_forall loop versioning failed because pointer is not loop invariant. |
UPCPrivatizedRef1 | Privatized the following shared reference. |
UPCPrivatizedRef2 | Privatized shared reference. |
UPCRemoteUpdate | Generated remote update call for shared reference. |
UPCRemoteUpdateUnknownPattern | Unrecognized remote update operation for shared reference. |
UserSpecifiedNoSIMD | An attempt to SIMD vectorize failed because SIMD vectorization has been disabled by option or pragma. |
Type | Description |
ArgumentIsVolatile | The function was not inlined because an argument to the call is volatile. |
CalleeIsCompact | The function was not inlined because the callee is being optimized for size. |
CalleeIsNoopt | The function was not inlined because the callee is compiled at noopt. |
CallerIsCompact | The function was not inlined because the caller is being optimized for size. |
CallerIsNoopt | The function was not inlined because the caller was compiled at noopt. |
ExternalLabel | The function was not inlined because it contains an externally visible label. |
FunctionTooBig | The function was not inlined because it is too big to be inlined. |
FunctionTryBlock | The function was not inlined because the caller is a function try block and the callee is a destructor. |
MiscellaneousLimitation | The function was not inlined due to a limitation. |
MismatchedArguments | The function was not inlined because the type or the number of arguments does not match the parameters of the callee. |
NestedAddressTakenProcedure | The function was not inlined because the callee contains a nested function which is address taken and accesses the callee's auto. |
NonIPAObject | The function was not inlined because the callee was not compiled with IPA. |
OptionMismatch | The function was not inlined because the caller and callee were compiled with options that are incompatible with inlining. |
ParameterOfVariablyModifiedType | The function was not inlined because the callee has one or more parameters that are variable length arrays. |
PDFLowFrequency | The function was not inlined because PDF indicates that the callee was called too infrequently to warrant inlining. |
PrimaryFromSecondaryEntryPoint | The function was not inlined because it is a call to a primary entry point from a function with a secondary entry point. |
ProhibitedByUser | The function was not inlined because of user specified pragma or directive. |
RecursiveCall | The function was not inlined because it is recursive. |
SuccessfulInline | The function was successfully inlined. |
VirtualBaseDestructor | The function was not inlined because it is a call to a virtual base destructor. |
WeakAndNotExplicitlyInline | The function was not inlined because the callee is weak and not marked as inline. |
Type | Description |
ArrayCoalescing | Global variables were aggregated. |
ArrayInterleaving | Array of small data-types were grouped into a large aggregated data-type. |
ArraySplitting | An array of a large aggregated data-type was split into multiple arrays of smaller data-types. |
ArrayTransposing | A multidimensional array was transposed. |
CommonBlockSplitting | A Fortran common block or module was divided into smaller pieces of data. |
MemoryAllocationMerging | A multidimensional dynamic array was flatten into contiguous memory space. |
This is the first edition.