1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
|
/* file generated by oo2c -- do not edit */
#include "CodeGen.h"
#include "AlgebraicTransformation.h"
#include "AliasAnalysis.h"
#include "Allocate.h"
#include "Build.h"
#include "Check.h"
#include "Classify.h"
#include "ConstPropagation.h"
#include "ControlFlow.h"
#include "CopyPropagation.h"
#include "DeadCodeElimination.h"
#include "Error.h"
#include "FileData.h"
#include "Files.h"
#include "GateReduction.h"
#include "GenConst.h"
#include "GenDecl.h"
#include "GenInclude.h"
#include "GenStatm.h"
#include "GuardCond.h"
#include "GuardPropagation.h"
#include "LoopTransformation.h"
#include "Opcode.h"
#include "Out.h"
#include "Schedule.h"
#include "SideEffects.h"
#include "StdTypes.h"
#include "Strings.h"
#include "SymbolFile.h"
#include "SystemFlags.h"
#include "TextRider.h"
#include "ValueNumbering.h"
#include "WriteGSA.h"
#include "WriteGSAvC.h"
/* local definitions */
ParamOptions__StringOption CodeGen__translationBasis;
typedef void(* CodeGen__TransformProc)(Data__Region r);
typedef struct CodeGen__CodeTransformDesc {
struct CodeGen__CodeTransformDesc* next;
unsigned char name[48];
unsigned char id;
char _53pad, _54pad, _55pad;
unsigned int flags;
CodeGen__TransformProc proc;
} CodeGen__CodeTransformDesc;
typedef struct CodeGen__CodeTransformDesc* CodeGen__CodeTransform;
static CodeGen__CodeTransform CodeGen__ctProcs;
ParamOptions__StringOption CodeGen__optimizers;
ParamOptions__BooleanOption CodeGen__stupidCodeGen;
static ParamOptions__BooleanOption CodeGen__checks;
static FileData__FileData CodeGen__hFile;
static FileData__FileData CodeGen__dFile;
static FileData__FileData CodeGen__cFile;
static TextRider__Writer CodeGen__hWriter;
static TextRider__Writer CodeGen__dWriter;
static TextRider__Writer CodeGen__cWriter;
/* function prototypes */
CodeGen__CodeTransform CodeGen__FindProc(unsigned char id);
void CodeGen__WriteGSACode(Data__Region r);
void CodeGen__InstallOptimizers_AddProc(const unsigned char* name__ref, int name_0d, unsigned char id, CodeGen__TransformProc proc, unsigned int flags);
unsigned char CodeGen__OptimizeBlock_NoDCE(const unsigned char* opt, int opt_0d);
void CodeGen__OptimizeBlock(Data__GlobalRegion greg);
void CodeGen__OptimizeModule(CodeGen__Module modData);
void CodeGen__DeleteGreg(Data__GlobalRegion *greg, Data__Object *obj, unsigned char keepInterface);
void CodeGen__InitializeModule(TextRider__Writer w, Data__Object obj, Data__Struct tdList);
unsigned char CodeGen__TranslateGreg_AdjustBranchConditions_SingleUse(Data__Usable u);
unsigned char CodeGen__TranslateGreg_AdjustBranchConditions_NegateInstruction(Data__Instruction instr);
void CodeGen__TranslateGreg_AdjustBranchConditions(Data__Region r);
void CodeGen__TranslateGreg_ResetLocations(Data__Instruction enter, Data__Instruction exit);
void CodeGen__TranslateGreg(TextRider__Writer w, Data__GlobalRegion greg, Data__Struct tdList);
void CodeGen__EmitProcedure(TextRider__Writer w, CodeGen__Procedure proc);
void CodeGen__EmitModuleBody(TextRider__Writer w, CodeGen__Module modData, Data__Struct tdList);
void CodeGen__EmitDeclarations_CollectInitialization_AddElement(int index, Data__Instruction update, GenConst__UpdateList *CodeGen__EmitDeclarations_CollectInitialization_list, int *CodeGen__EmitDeclarations_CollectInitialization_filled, int *CodeGen__EmitDeclarations_CollectInitialization_lenList);
int CodeGen__EmitDeclarations_CollectInitialization_TraceUpdates_Elements(Data__Struct t);
void CodeGen__EmitDeclarations_CollectInitialization_TraceUpdates(Data__Usable value, int offset, Data__Struct type, Data__GlobalRegion *CodeGen__EmitDeclarations_CollectInitialization_greg, Data__Object *CodeGen__EmitDeclarations_CollectInitialization_obj, GenConst__UpdateList *CodeGen__EmitDeclarations_CollectInitialization_list, int *CodeGen__EmitDeclarations_CollectInitialization_filled, int *CodeGen__EmitDeclarations_CollectInitialization_lenList);
void CodeGen__EmitDeclarations_CollectInitialization(Data__Object obj, GenConst__UpdateList *list, int *lenList, int *filled, CodeGen__Module *CodeGen__EmitDeclarations_mod);
void CodeGen__EmitDeclarations_RemoveNoopUpdates(Data__Usable value, Data__GlobalRegion greg);
void CodeGen__EmitDeclarations(TextRider__Writer w, GenDecl__ObjectList objList, int objCount, CodeGen__Module mod, unsigned char header);
void CodeGen__EmitHeaderFile(TextRider__Writer w, CodeGen__Module mod);
Data__Struct CodeGen__EmitTypeDescriptors(TextRider__Writer w, CodeGen__Module mod);
void CodeGen__EmitDeclFile_WriteOtherImports(Data__Object obj, TextRider__Writer *CodeGen__EmitDeclFile_w);
void CodeGen__EmitDeclFile_EmitPrototypes(TextRider__Writer w, CodeGen__Procedure procList);
void CodeGen__EmitDeclFile(TextRider__Writer w, CodeGen__Module mod);
void CodeGen__WriteSymbolFile(CodeGen__Module modData);
TextRider__Writer CodeGen__CreateModule_CreateFiles_CreateTmpFile(FileData__FileData fd);
void CodeGen__CreateModule_CreateFiles(Data__Object mod, CodeGen__Program *CodeGen__CreateModule_progData);
void CodeGen__CreateModule_AppendModule(CodeGen__Module *modList, CodeGen__Module mod);
void CodeGen__FinishProcedure_AppendProcedure(CodeGen__Procedure *procList, CodeGen__Procedure proc);
void CodeGen__FinishModule_CloseFile(TextRider__Writer w, FileData__FileData fd);
/* module and type descriptors */
static const struct {
int length;
void* pad;
const char name[8];
} _n0 = {8, NULL, {"CodeGen"}};
static struct _MD CodeGen_md = {
NULL,
&Kernel__ModuleDesc_td.td,
{
NULL,
(const unsigned char*)_n0.name,
-1,
NULL
}
};
static const struct {
int length;
void* pad;
const char name[12];
} _n1 = {12, NULL, {"ProgramDesc"}};
static const struct {
int length;
void* pad;
_Type btypes[1];
} CodeGen__ProgramDesc_tdb = {
1,
NULL,
{
&CodeGen__ProgramDesc_td.td
}
};
static const struct {
int length;
void* pad;
const void* tbprocs[1];
} _tb0 = {0, NULL, {
NULL
}};
struct _TD CodeGen__ProgramDesc_td = {
NULL,
&Types__TypeDesc_td.td,
{
CodeGen__ProgramDesc_tdb.btypes,
_tb0.tbprocs,
(const unsigned char*)_n1.name,
&CodeGen_md.md,
0,
'0', '1',
sizeof(CodeGen__ProgramDesc),
NULL
}
};
static const struct {
int length;
void* pad;
const char name[11];
} _n2 = {11, NULL, {"ModuleDesc"}};
static const struct {
int length;
void* pad;
_Type btypes[1];
} CodeGen__ModuleDesc_tdb = {
1,
NULL,
{
&CodeGen__ModuleDesc_td.td
}
};
static const struct {
int length;
void* pad;
const void* tbprocs[1];
} _tb1 = {0, NULL, {
NULL
}};
struct _TD CodeGen__ModuleDesc_td = {
NULL,
&Types__TypeDesc_td.td,
{
CodeGen__ModuleDesc_tdb.btypes,
_tb1.tbprocs,
(const unsigned char*)_n2.name,
&CodeGen_md.md,
0,
'0', '1',
sizeof(CodeGen__ModuleDesc),
&CodeGen__ProgramDesc_td.td
}
};
static const struct {
int length;
void* pad;
const char name[14];
} _n3 = {14, NULL, {"ProcedureDesc"}};
static const struct {
int length;
void* pad;
_Type btypes[1];
} CodeGen__ProcedureDesc_tdb = {
1,
NULL,
{
&CodeGen__ProcedureDesc_td.td
}
};
static const struct {
int length;
void* pad;
const void* tbprocs[1];
} _tb2 = {0, NULL, {
NULL
}};
struct _TD CodeGen__ProcedureDesc_td = {
NULL,
&Types__TypeDesc_td.td,
{
CodeGen__ProcedureDesc_tdb.btypes,
_tb2.tbprocs,
(const unsigned char*)_n3.name,
&CodeGen_md.md,
0,
'0', '1',
sizeof(CodeGen__ProcedureDesc),
&CodeGen__ModuleDesc_td.td
}
};
static const struct {
int length;
void* pad;
const char name[18];
} _n4 = {18, NULL, {"CodeTransformDesc"}};
static const struct {
int length;
void* pad;
_Type btypes[1];
} CodeGen__CodeTransformDesc_tdb = {
1,
NULL,
{
&CodeGen__CodeTransformDesc_td.td
}
};
static const struct {
int length;
void* pad;
const void* tbprocs[1];
} _tb3 = {0, NULL, {
NULL
}};
struct _TD CodeGen__CodeTransformDesc_td = {
NULL,
&Types__TypeDesc_td.td,
{
CodeGen__CodeTransformDesc_tdb.btypes,
_tb3.tbprocs,
(const unsigned char*)_n4.name,
&CodeGen_md.md,
0,
'0', '1',
sizeof(CodeGen__CodeTransformDesc),
&CodeGen__ProcedureDesc_td.td
}
};
/* local strings */
static const unsigned char _c65[] = "checks:=TRUE";
static const unsigned char _c64[] = "--checks";
static const unsigned char _c63[] = "checks";
static const unsigned char _c62[] = "optimizers:=\047$1\047";
static const unsigned char _c61[] = "--opt";
static const unsigned char _c60[] = "\077\077\077";
static const unsigned char _c59[] = "optimizers";
static const unsigned char _c58[] = "stupidCodeGen:=TRUE";
static const unsigned char _c57[] = "--stupid";
static const unsigned char _c56[] = "stupidCodeGen";
static const unsigned char _c55[] = "translationBasis:=\047$1\047";
static const unsigned char _c54[] = "--translate";
static const unsigned char _c53[] = "translationBasis";
static const unsigned char _c52[] = "/* local strings */";
static const unsigned char _c51[] = "program";
static const unsigned char _c50[] = "module";
static const unsigned char _c49[] = "Closing file `%\047 failed";
static const unsigned char _c48[] = "Registering file `%\047 failed";
static const unsigned char _c47[] = "Write error in file `%\047";
static const unsigned char _c46[] = "static _ModId _mid;";
static const unsigned char _c45[] = "__libc";
static const unsigned char _c44[] = "__oo2c";
static const unsigned char _c43[] = "";
static const unsigned char _c42[] = ".c";
static const unsigned char _c41[] = ".d";
static const unsigned char _c40[] = "/* file generated by oo2c -- do not edit */";
static const unsigned char _c39[] = "Couldn\047t create file `%\047";
static const unsigned char _c38[] = " symbol file changed";
static const unsigned char _c37[] = " new symbol file";
static const unsigned char _c36[] = "/* function prototypes */";
static const unsigned char _c35[] = "/* local definitions */";
static const unsigned char _c34[] = ".h";
static const unsigned char _c33[] = "gproc";
static const unsigned char _c32[] = "/* module and type descriptors */";
static const unsigned char _c31[] = "#endif";
static const unsigned char _c30[] = "_init(void);";
static const unsigned char _c29[] = "extern void ";
static const unsigned char _c28[] = "#define _MODULE_";
static const unsigned char _c27[] = "_";
static const unsigned char _c26[] = "#ifndef _MODULE_";
static const unsigned char _c25[] = "_init(void) {";
static const unsigned char _c24[] = "void ";
static const unsigned char _c23[] = " {";
static const unsigned char _c22[] = ");";
static const unsigned char _c21[] = "NULL";
static const unsigned char _c20[] = ".td";
static const unsigned char _c19[] = "_md.md, ";
static const unsigned char _c18[] = "_mid = _register_module(&";
static const unsigned char _c17[] = " violated GSA invariant, aborting";
static const unsigned char _c16[] = "Error: ";
static const unsigned char _c15[] = "Code emitted by front-end didn\047t pass consistency checks, aborting";
static const unsigned char _c14[] = "constant propagation";
static const unsigned char _c13[] = "algebraic transformation";
static const unsigned char _c12[] = "common subexpression elimination";
static const unsigned char _c11[] = "gate reduction";
static const unsigned char _c10[] = "guard propagation";
static const unsigned char _c9[] = "loop transformation";
static const unsigned char _c8[] = "alias analysis";
static const unsigned char _c7[] = "dead code elimination";
static const unsigned char _c6[] = "dead code elimination and remove disabled instr";
static const unsigned char _c5[] = "suppress final dead code elimination";
static const unsigned char _c4[] = "write GSA code";
static const unsigned char _c3[] = " ";
static const unsigned char _c2[] = " ";
static const unsigned char _c1[] = "\047. Valid values:";
static const unsigned char _c0[] = "Illegal optimization id `";
|