988 {
989 char *
name = argv[0];
991 int dirlen = 0;
992 int kflag = 0;
993 int inflag = 0;
994 FILE *test = NULL;
995 int len, status = 0;
996
998
999
1000 while(--argc){
1001 ++argv;
1002 if( !strcmp(argv[0],"-h") ){
1004 return -1;
1005 }
1006 if( argc > 1 && !strcmp(argv[0],"-k") ){
1009 {
1011 fprintf(
stderr,
"Warning: Cannot pass a negative value to -k.\n");
1012 }
1014 kflag = 1;
1015 --argc;
1016 ++argv;
1017 continue;
1018 }
1019 if( argc > 1 && !strcmp(argv[0],"-n") ){
1021 --argc;
1022 ++argv;
1023 continue;
1024 }
1025 if( argc > 1 && !strcmp(argv[0],"-conf") ){
1027 --argc;
1028 ++argv;
1029 continue;
1030 }
1031 if( argc > 1 && !strcmp(argv[0],"-in") ){
1034 inflag = 1;
1035 --argc;
1036 ++argv;
1037 continue;
1038 }
1039 if( argc > 1 && !strcmp(argv[0],"-out") ){
1041 --argc;
1042 ++argv;
1043 continue;
1044 }
1045 if( !strcmp(argv[0],"-verbose") ){
1047 continue;
1048 }
1049 if( !strcmp(argv[0],"-quick") ){
1051 continue;
1052 }
1053 if( !strcmp(argv[0],"-branch") ){
1055 continue;
1056 }
1057 if( !strcmp(argv[0],"-dcr") ){
1059 continue;
1060 }
1061 if( !strcmp(argv[0],"-dcw") ){
1063 continue;
1064 }
1065 if( !strcmp(argv[0],"-flops") ){
1067 continue;
1068 }
1069 if( !strcmp(argv[0],"-ic") ){
1071 continue;
1072 }
1073 if( !strcmp(argv[0],"-vec") ){
1075 continue;
1076 }
1077 if( !strcmp(argv[0],"-instr") ){
1079 continue;
1080 }
1081
1083 return -1;
1084 }
1085
1086
1088 {
1090 if(test == NULL)
1091 {
1092 fprintf(
stderr,
"Could not open %s. Exiting...\n", params->
inputfile);
1093 return -1;
1094 }
1096 }
1097
1098
1099 if(kflag == 1 && inflag == 1)
1100 {
1101 fprintf(
stderr,
"Cannot use -k flag with -in flag. Exiting...\n");
1102 return -1;
1103 }
1104
1105
1106 if(kflag == 0 && inflag == 0)
1107 {
1109 return -1;
1110 }
1111
1112
1114 {
1115 fprintf(
stderr,
"Output path not provided. Exiting...\n");
1116 return -1;
1117 }
1118
1119
1120 dirlen = strlen(
tmp);
1121 params->
outputdir = (
char*)malloc((2+dirlen)*
sizeof(char));
1122
1124 fprintf(
stderr,
"Failed to allocate memory.\n");
1125 return -1;
1126 }
1127
1128 len = snprintf( params->
outputdir, 2+dirlen,
"%s/",
tmp);
1129 if( len < 1+dirlen )
1130 {
1131 fprintf(
stderr,
"Problem with output directory name.\n");
1132 return -1;
1133 }
1134
1135
1136 status = access(params->
outputdir, W_OK);
1137 if(status != 0)
1138 {
1139 fprintf(
stderr,
"Permission to write files to \"%s\" denied. Make sure the path exists and is writable.\n",
tmp);
1140 return -1;
1141 }
1142
1143 return 0;
1144}
#define BENCH_DCACHE_WRITE
#define BENCH_DCACHE_READ
#define BENCH_ICACHE_READ
int fclose(FILE *__stream)