/* Steensgard inter-procedural alias analysis. */ /* Optimizations: Scepnrvud */ /* Performing Static Single Assignment Form with Globals */ /* Performing Sparse Conditional Constant Propagation */ /* Performing Partial Redundancy Elimination */ /* Performing Copy Propagation */ /* Performing Global Value Numbering */ /* Performing Phi Function Removal */ /* Performing Variable Coalescing */ /* Performing Useless Copy Removal */ /* Performing Dead Variable Elimination */ #include const struct CLASSENTRY { const unsigned short * name; const struct CLASSENTRY * super; char kind; } ; const struct INTERFACEENTRY { int hash; const struct CLASSENTRY * class; const void (* * methods)(); } ; const struct ARRAYHEADER { const struct CLASSENTRY * class; int length; void * elementType; void * array[1]; } ; const struct VTABLE { const struct CLASSENTRY * class; int interfaceCount; const struct INTERFACEENTRY * interfaces; const void (* methods[1])(); } ; const struct EXCEPTIONENTRY { int beginPc; int endPc; const struct CLASSENTRY * catchType; } ; struct java_lang_Object { const struct VTABLE * vtable; } ; const struct _aXC { const struct CLASSENTRY * class; int length; void * elementType; unsigned short array[1]; } ; struct java_lang_String { const struct VTABLE * vtable; const struct _aXC * value; int offset; int count; } ; extern void * __globalExceptionVariable; struct scale_test_Fibinacci { const struct VTABLE * vtable; } ; extern const struct CLASSENTRY java_lang_Object_class; const struct scale_test_Fibinacci_vtable_t { const struct CLASSENTRY * class; int interfaceCount; const struct INTERFACEENTRY * interfaces; const void (* methods[12])(); } ; extern const struct CLASSENTRY java_lang_NullPointerException_class; const struct _aXLjava_lang_String_ { const struct CLASSENTRY * class; int length; void * elementType; struct java_lang_String * array[1]; } ; extern const struct CLASSENTRY java_lang_ArrayIndexOutOfBoundsException_class; const struct _aXB { const struct CLASSENTRY * class; int length; void * elementType; char array[1]; } ; extern struct java_io_PrintStream * const java_lang_System_out; struct java_lang_StringBuffer { const struct VTABLE * vtable; const struct _aXC * value; int count; int shared; } ; extern const struct VTABLE java_lang_StringBuffer_vtable; struct java_io_PrintStream { const struct VTABLE * vtable; struct java_io_OutputStream * out; int autoFlush; int trouble; struct java_io_BufferedWriter * textOut; struct java_io_OutputStreamWriter * charOut; int closing; } ; void java_lang_Object_wait__J_V(struct java_lang_Object * this, long p0); int java_lang_Object_hashCode___I(struct java_lang_Object * this); void * __findIntMethod(int index, int hashcode, const struct VTABLE * vtable); void scale_test_Fibinacci_main__XLjava_lang_String__V(const struct _aXLjava_lang_String_ * p0); void * __makeException(const struct CLASSENTRY * class); int java_lang_Object_equals__Ljava_lang_Object__Z(struct java_lang_Object * this, struct java_lang_Object * p0); void scale_test_Fibinacci__init____V(struct scale_test_Fibinacci * this); void java_lang_Object__init____V(struct java_lang_Object * this); struct java_lang_Class * java_lang_Object_getClass___Ljava_lang_Class_(struct java_lang_Object * this); void java_lang_Object_wait___V(struct java_lang_Object * this); void __createString(struct java_lang_String * * target, const unsigned short * source); int java_lang_Integer_parseInt__Ljava_lang_String__I(struct java_lang_String * p0); void java_lang_Object_wait__JI_V(struct java_lang_Object * this, long p0, int p1); void * __lookupException(int pc, void * exception, const struct EXCEPTIONENTRY * exceptionTab); struct java_lang_String * java_lang_Object_toString___Ljava_lang_String_(struct java_lang_Object * this); void java_lang_StringBuffer__init___Ljava_lang_String__V(struct java_lang_StringBuffer * this, struct java_lang_String * p0); void java_lang_Object_notify___V(struct java_lang_Object * this); int scale_test_Fibinacci_calc__I_I(struct scale_test_Fibinacci * this, int p0); struct java_lang_Object * java_lang_Object_clone___Ljava_lang_Object_(struct java_lang_Object * this); void java_lang_Object_notifyAll___V(struct java_lang_Object * this); void java_lang_Object_finalize___V(struct java_lang_Object * this); static unsigned short const __sinit_0[27] = { 26, 115, 99, 97, 108, 101, 95, 116, 101, 115, 116, 95, 70, 105, 98, 105, 110, 97, 99, 99, 105, 95, 99, 108, 97, 115, 115}; const struct CLASSENTRY scale_test_Fibinacci_class = { __sinit_0, ( &java_lang_Object_class), 0}; const struct scale_test_Fibinacci_vtable_t scale_test_Fibinacci_vtable = { ( &scale_test_Fibinacci_class), 0, ((void * )0), ((void * )java_lang_Object_clone___Ljava_lang_Object_), ((void * )java_lang_Object_equals__Ljava_lang_Object__Z), ((void * )java_lang_Object_finalize___V), ((void * )java_lang_Object_getClass___Ljava_lang_Class_), ((void * )java_lang_Object_hashCode___I), ((void * )java_lang_Object_notify___V), ((void * )java_lang_Object_notifyAll___V), ((void * )java_lang_Object_toString___Ljava_lang_String_), ((void * )java_lang_Object_wait___V), ((void * )java_lang_Object_wait__J_V), ((void * )java_lang_Object_wait__JI_V), ((void * )scale_test_Fibinacci_calc__I_I)}; static unsigned short const __sinit_32[11] = { 10, 65, 110, 115, 119, 101, 114, 32, 105, 115, 32}; void scale_test_Fibinacci_main__XLjava_lang_String__V(const struct _aXLjava_lang_String_ * p0) { void _s11; void * _s12; struct scale_test_Fibinacci * _s13; const struct VTABLE * * _s14; void * _s15; void * _svA0; void * _svA1; int __javaPc; void * _lvA1; int _svI2; const struct ARRAYHEADER _s16; int * _s17; int _s18; const struct ARRAYHEADER _s19; void * (* _s20)[1]; int _svI1; struct scale_test_Fibinacci * _s21; const struct VTABLE * * _s22; const struct VTABLE * _s23; const void (* _s24[1])(); void _s25; int (* _s26)(); int _s27(); int _svI0; int _lvI2; void * _s28; struct java_lang_StringBuffer * _s29; const struct VTABLE * * _s30; void * _s31; void * _svA2; struct java_lang_String * _s33; void * _svA3; struct java_lang_StringBuffer * _s34; const struct VTABLE * * _s35; const struct VTABLE * _s36; const void (* _s37[1])(); void _s38; struct java_lang_StringBuffer * (* _s39)(); struct java_lang_StringBuffer * _s40(); struct java_lang_StringBuffer * _s41; const struct VTABLE * * _s42; const struct VTABLE * _s43; const void (* _s44[1])(); void _s45; struct java_lang_String * (* _s46)(); struct java_lang_String * _s47(); struct java_io_PrintStream * _s48; const struct VTABLE * * _s49; const struct VTABLE * _s50; const void (* _s51[1])(); void _s52; void (* _s53)(); void _s54(); _s12 = ((void *) malloc(sizeof(struct scale_test_Fibinacci ))); _s13 = ((struct scale_test_Fibinacci * )_s12); _s14 = &(_s13->vtable); _s15 = ((void * )&(scale_test_Fibinacci_vtable)); *(_s14) = _s15; _svA0 = _s13; _svA1 = _svA0; if ((_svA1 == (void * )0)) goto __L_1; __L_2: __noop(); scale_test_Fibinacci__init____V(_svA1) /* met */; __javaPc = 4; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_4: __noop(); _lvA1 = _svA0; _svA0 = _lvA1; _svA1 = p0; _svI2 = 0; if ((_svA1 == (void * )0)) goto __L_1; __L_5: __noop(); if ((_svI2 < 0)) goto __L_6; __L_7: __noop(); _s16 = ((const struct ARRAYHEADER )_svA1); _s17 = &(_s16->length); _s18 = (*_s17); if ((_svI2 >= _s18)) goto __L_6; __L_8: __noop(); _s19 = ((const struct ARRAYHEADER )_svA1); _s20 = &(_s19->array); _svA1 = (_s20[_svI2]); _svI1 = java_lang_Integer_parseInt__Ljava_lang_String__I(_svA1) /* ftn */; __javaPc = 12; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_9: __noop(); if ((_svA0 == (void * )0)) goto __L_1; __L_10: __noop(); _s21 = ((struct scale_test_Fibinacci * )_svA0); _s22 = &(_s21->vtable); _s23 = (*_s22); _s24 = &(_s23->methods); _s25 = *((_s24[11])); _s26 = ((int (* )())_s25); _s27 = (*_s26); _svI0 = (_s27)(_svA0, _svI1) /* met */; __javaPc = 15; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_11: __noop(); _lvI2 = _svI0; _svA0 = java_lang_System_out; _s28 = ((void *) malloc(sizeof(struct java_lang_StringBuffer ))); _s29 = ((struct java_lang_StringBuffer * )_s28); _s30 = &(_s29->vtable); _s31 = ((void * )&(java_lang_StringBuffer_vtable)); *(_s30) = _s31; _svA1 = _s29; _svA2 = _svA1; __createString(&(_s33), &(__sinit_32[0])) /* ftn */; _svA3 = _s33; if ((_svA2 == (void * )0)) goto __L_1; __L_12: __noop(); java_lang_StringBuffer__init___Ljava_lang_String__V(_svA2, _svA3) /* met */; __javaPc = 28; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_13: __noop(); _svI2 = _lvI2; if ((_svA1 == (void * )0)) goto __L_1; __L_14: __noop(); _s34 = ((struct java_lang_StringBuffer * )_svA1); _s35 = &(_s34->vtable); _s36 = (*_s35); _s37 = &(_s36->methods); _s38 = *((_s37[14])); _s39 = ((struct java_lang_StringBuffer * (* )())_s38); _s40 = (*_s39); _svA1 = (_s40)(_svA1, _svI2) /* met */; __javaPc = 32; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_15: __noop(); if ((_svA1 == (void * )0)) goto __L_1; __L_16: __noop(); _s41 = ((struct java_lang_StringBuffer * )_svA1); _s42 = &(_s41->vtable); _s43 = (*_s42); _s44 = &(_s43->methods); _s45 = *((_s44[7])); _s46 = ((struct java_lang_String * (* )())_s45); _s47 = (*_s46); _svA1 = (_s47)(_svA1) /* met */; __javaPc = 35; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_17: __noop(); if ((_svA0 == (void * )0)) goto __L_1; __L_18: __noop(); _s48 = ((struct java_io_PrintStream * )_svA0); _s49 = &(_s48->vtable); _s50 = (*_s49); _s51 = &(_s50->methods); _s52 = *((_s51[33])); _s53 = ((void (* )())_s52); _s54 = (*_s53); (_s54)(_svA0, _svA1) /* met */; __javaPc = 38; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_19: __noop(); goto __L_3; __L_6: __globalExceptionVariable = __makeException(&(java_lang_ArrayIndexOutOfBoundsException_class)) /* ftn */; goto __L_3; __L_3: return (_s11); __L_1: __globalExceptionVariable = __makeException(&(java_lang_NullPointerException_class)) /* ftn */; goto __L_3; } void scale_test_Fibinacci__init____V(struct scale_test_Fibinacci * this) { void _s1; void * _svA0; int __javaPc; _svA0 = this; if ((_svA0 == (void * )0)) goto __L_1; __L_2: __noop(); java_lang_Object__init____V(_svA0) /* met */; __javaPc = 1; if ((__globalExceptionVariable != (void * )0)) goto __L_3; __L_4: __noop(); goto __L_3; __L_3: return (_s1); __L_1: __globalExceptionVariable = __makeException(&(java_lang_NullPointerException_class)) /* ftn */; goto __L_3; } int scale_test_Fibinacci_calc__I_I(struct scale_test_Fibinacci * this, int p0) { int _s2; int _svI0; int _svI1; int _s3; int _svI2; struct scale_test_Fibinacci * _s4; const struct VTABLE * * _s5; const struct VTABLE * _s6; const void (* _s7[1])(); void _s8; int (* _s9)(); int _s10(); _s3 = (p0 > 1); if (_s3) goto __L_1; __L_2: _s2 = 1; _svI0 = 1; _svI1 = 1; __L_3: return (_s2); __L_1: _svI2 = (p0 - 1); if ((this == (void * )0)) goto __L_4; __L_5: _s4 = ((struct scale_test_Fibinacci * )this); _s5 = &(_s4->vtable); _s6 = (*_s5); _s7 = &(_s6->methods); _s8 = *((_s7[11])); _s9 = ((int (* )())_s8); _s10 = (*_s9); _svI1 = (_s10)(this, _svI2) /* met */; if ((__globalExceptionVariable != (void * )0)) goto __L_6; __L_7: _svI0 = (p0 + _svI1); _s2 = _svI0; goto __L_3; __L_6: _svI0 = p0; goto __L_3; __L_4: __globalExceptionVariable = __makeException(&(java_lang_NullPointerException_class)) /* ftn */; _svI0 = p0; _svI1 = 1; goto __L_3; } int main(int argc, char *argv[]) { scale_test_Fibinacci_main__XLjava_lang_String__V(__moung_args(argc, argv)) }