⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix-4.c

📁 用于进行gcc测试
💻 C
字号:
/* { dg-do compile } *//* { dg-options "-O3 -fipa-matrix-reorg -fdump-ipa-matrix-reorg -c -fwhole-program -combine"  } */#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>void mem_init (void);int ARCHnodes, ARCHnodes1;int ***vel;void just_a_call (int ****);/* Address of VEL is taken.   It is not flattened.  *//*--------------------------------------------------------------------------*/intmain (int argc, char **argv){  int i, j, k;  ARCHnodes = 2;  ARCHnodes1 = 4;/* Dynamic memory allocations and initializations */  mem_init ();  for (i = 0; i < ARCHnodes; i++)    {      for (j = 0; j < 3; j++)	{	  for (k = 0; k < ARCHnodes1; k++)	    printf ("[%d][%d][%d]=%d ", i, j, k, vel[i][j][k]);	  printf ("\n");	}      printf ("\n");    }  for (i = 0; i < ARCHnodes; i++)    for (j = 0; j < 3; j++)      free (vel[i][j]);  for (i = 0; i < ARCHnodes; i++)    free (vel[i]);  free (vel);  return 0;}/*--------------------------------------------------------------------------*//* Dynamic memory allocations and initializations                           */voidmem_init (void){  int i, j, k,d;   d = 0;  vel = (int ***) malloc (ARCHnodes * sizeof (int **));  for (i = 0; i < ARCHnodes; i++)    {      vel[i] = (int **) malloc (3 * sizeof (int *));      if (vel[i] == (int **) NULL)	{	  fprintf (stderr, "malloc failed for vel[%d]\n", i);	  fflush (stderr);	  exit (0);	}    }  for (i = 0; i < ARCHnodes; i++)    {      for (j = 0; j < 3; j++)	{	  vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int));	}    }  for (i = 0; i < ARCHnodes; i++)    {      for (j = 0; j < 3; j++)	{	  for (k = 0; k < ARCHnodes1; k++)	    {	      vel[i][j][k] = d;	      d++;	    }	}    }  just_a_call (&vel);}/*--------------------------------------------------------------------------*//* { dg-final { scan-ipa-dump-times "Flattened" 0 "matrix-reorg"  } } *//* { dg-final { cleanup-ipa-dump "matrix-reorg" } } */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -