---input--- #include // __device__ function __device__ void func() { short* array0 = (short*)array; float* array1 = (float*)&array0[127]; } /* __global__ function */ __global__ static void reduction(const float* __restrict__ input, float *output, clock_t *timer) { // __shared__ float shared[2 * blockDim.x]; extern __shared__ float shared[]; const int tid = threadIdx.x; const int bid = blockIdx.x; if (threadIdx.x == 0) { __threadfence(); } // Perform reduction to find minimum. for (int d = blockDim.x; d > 0; d /= 2) { __syncthreads(); } } int main(int argc, char **argv) { dim3 dimBlock(8, 8, 1); timedReduction<<>>(dinput, doutput, dtimer); cudaDeviceReset(); } ---tokens--- '#' Comment.Preproc 'include' Comment.Preproc ' ' Text '' Comment.PreprocFile '\n' Comment.Preproc '\n' Text '// __device__ function\n' Comment.Single '__device__' Keyword.Type ' ' Text 'void' Keyword.Type ' ' Text 'func' Name '(' Punctuation ')' Punctuation '\n' Text '{' Punctuation '\n' Text ' ' Text 'short' Keyword.Type '*' Operator ' ' Text 'array0' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'short' Keyword.Type '*' Operator ')' Punctuation 'array' Name ';' Punctuation '\n' Text ' ' Text 'float' Keyword.Type '*' Operator ' ' Text 'array1' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type '*' Operator ')' Punctuation '&' Operator 'array0' Name '[' Punctuation '127' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text '/* __global__ function */' Comment.Multiline '\n' Text '__global__' Keyword.Reserved ' ' Text 'static' Keyword ' ' Text 'void' Keyword.Type ' ' Text 'reduction' Name '(' Punctuation 'const' Keyword ' ' Text 'float' Keyword.Type '*' Operator ' ' Text '__restrict__' Keyword.Type ' ' Text 'input' Name ',' Punctuation ' ' Text 'float' Keyword.Type ' ' Text '*' Operator 'output' Name ',' Punctuation ' ' Text 'clock_t' Keyword.Type ' ' Text '*' Operator 'timer' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text ' ' Text '// __shared__ float shared[2 * blockDim.x];\n' Comment.Single ' ' Text 'extern' Keyword ' ' Text '__shared__' Keyword.Type ' ' Text 'float' Keyword.Type ' ' Text 'shared' Name '[' Punctuation ']' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'const' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'tid' Name ' ' Text '=' Operator ' ' Text 'threadIdx' Name.Builtin '.' Punctuation 'x' Name ';' Punctuation '\n' Text ' ' Text 'const' Keyword ' ' Text 'int' Keyword.Type ' ' Text 'bid' Name ' ' Text '=' Operator ' ' Text 'blockIdx' Name.Builtin '.' Punctuation 'x' Name ';' Punctuation '\n' Text ' \n ' Text 'if' Keyword ' ' Text '(' Punctuation 'threadIdx' Name.Builtin '.' Punctuation 'x' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '{' Punctuation '\n' Text ' ' Text '__threadfence' Name.Function '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text '// Perform reduction to find minimum.\n' Comment.Single ' ' Text 'for' Keyword ' ' Text '(' Punctuation 'int' Keyword.Type ' ' Text 'd' Name ' ' Text '=' Operator ' ' Text 'blockDim' Name.Builtin '.' Punctuation 'x' Name ';' Punctuation ' ' Text 'd' Name ' ' Text '>' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text 'd' Name ' ' Text '/' Operator '=' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text '__syncthreads' Name.Function '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'int' Keyword.Type ' ' Text 'main' Name '(' Punctuation 'int' Keyword.Type ' ' Text 'argc' Name ',' Punctuation ' ' Text 'char' Keyword.Type ' ' Text '*' Operator '*' Operator 'argv' Name ')' Punctuation '\n' Text '{' Punctuation '\n' Text ' ' Text 'dim3' Keyword.Type ' ' Text 'dimBlock' Name.Function '(' Punctuation '8' Literal.Number.Integer ',' Punctuation ' ' Text '8' Literal.Number.Integer ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'timedReduction' Name '<' Operator '<' Operator '<' Operator 'dimBlock' Name ',' Punctuation ' ' Text '256' Literal.Number.Integer ',' Punctuation ' ' Text '256' Literal.Number.Integer ',' Punctuation ' ' Text '0' Literal.Number.Integer '>' Operator '>' Operator '>' Operator '(' Punctuation 'dinput' Name ',' Punctuation ' ' Text 'doutput' Name ',' Punctuation ' ' Text 'dtimer' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'cudaDeviceReset' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '}' Punctuation '\n' Text