MEMREF_CONTROL (i64 only)

General Compiler Directive: Lets you provide cache hints on prefetches, loads, and stores.

Syntax

cDEC$ MEMREF_CONTROL address1[: locality[: latency]] [,address2...]

c

Is one of the following: C (or c), !, or *. (See Syntax Rules for Compiler Directives.)

address1, address2

Is a memory reference. You must specify at least one address.

locality

Is an optional scalar integer initialization expression with the value 1, 2, 3, or 4. To use this argument, you must also specify address.

This argument specifies the cache level at which this data has temporal locality, that is, where the data should be kept for future accesses. This will determine the load/store hint (or prefetch hint) to be used for this reference. The value can be one of the following:

FOR_K_LOCALITY_L1 = 1

FOR_K_LOCALITY_L2 = 2

FOR_K_LOCALITY_L3 = 3

FOR_K_LOCALITY_MEM = 4

latency

Is an optional scalar integer initialization expression with the value 1, 2, 3, or 4. To use this argument, you must also specify address and locality.

This argument specifies the most appropriate latency value to be used for a load (or the latency that has to be overlapped if a prefetch is issued for this address). The value can be one of the following:

FOR_K_LATENCY_L1 = 1

FOR_K_LATENCY_L2 = 2

FOR_K_LATENCY_L3 = 3

FOR_K_LATENCY_MEM = 4

See Also