local analysis of sys_m7_cache_init scanning: MEM[(struct S32_SCB_Type *)3758153728B].CSSELR ={v} 0; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: ccsidr_18 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCSIDR; Volatile stmt is not const/pure Indirect ref read is not const scanning: _1 = ccsidr_18 >> 13; scanning: sets_19 = _1 & 32767; scanning: _2 = ccsidr_18 >> 3; scanning: ways_20 = _2 & 1023; scanning: _3 = sets_11 << 5; scanning: _4 = _3 & 16352; scanning: _5 = ways_12 << 30; scanning: _6 = _4 | _5; scanning: MEM[(struct S32_SCB_Type *)3758153728B].DCISW ={v} _6; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: ways_23 = ways_12 + 4294967295; scanning: if (ways_12 != 0) scanning: sets_24 = sets_11 + 4294967295; scanning: if (sets_11 != 0) scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: _7 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; Volatile stmt is not const/pure Indirect ref read is not const scanning: _8 = _7 | 65536; scanning: MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _8; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: MEM[(struct S32_SCB_Type *)3758153728B].ICIALLU ={v} 0; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: _9 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; Volatile stmt is not const/pure Indirect ref read is not const scanning: _10 = _9 | 131072; scanning: MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _10; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: return; Function is locally looping. Function can locally free. local analysis of SystemInit scanning: _28 ={v} MEM[(struct MSCM_Type *)1076232192B].CPXNUM; Volatile stmt is not const/pure Indirect ref read is not const scanning: _29 = (unsigned char) _28; scanning: _30 = _29 & 3; scanning: switch (_30) [33.33%], case 0: [33.33%], case 1: [33.33%]> scanning: : scanning: : scanning: : scanning: _1 ={v} MEM[(struct MSCM_Type *)1076232192B].IRSPRC[i_10]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _2 = (short unsigned int) coreMask_11; scanning: _3 = _1 | _2; scanning: MEM[(struct MSCM_Type *)1076232192B].IRSPRC[i_10] ={v} _3; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: i_27 = i_10 + 1; scanning: if (i_10 != 240) scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: _4 = (long unsigned int) regionNum_12; scanning: MEM[(struct S32_MPU_Type *)3758153728B].RNR ={v} _4; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _5 = (int) regionNum_12; scanning: _6 = rbar[_5]; scanning: MEM[(struct S32_MPU_Type *)3758153728B].RBAR ={v} _6; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _7 = rasr[_5]; scanning: MEM[(struct S32_MPU_Type *)3758153728B].RASR ={v} _7; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: regionNum_25 = regionNum_12 + 1; scanning: if (regionNum_12 != 14) scanning: _8 ={v} MEM[(struct S32_MPU_Type *)3758153728B].CTRL; Volatile stmt is not const/pure Indirect ref read is not const scanning: _9 = _8 | 1; scanning: MEM[(struct S32_MPU_Type *)3758153728B].CTRL ={v} _9; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: __asm__ __volatile__("dsb"); memory asm clobber is not const/pure volatile is not const/pure scanning: __asm__ __volatile__("isb"); memory asm clobber is not const/pure volatile is not const/pure scanning: sys_m7_cache_init (); scanning: return; Function is locally looping. Function can locally free. local analysis of Sys_GetCoreID scanning: _1 ={v} MEM[(struct MSCM_Type *)1076232192B].CPXNUM; Volatile stmt is not const/pure Indirect ref read is not const scanning: _2 = (unsigned char) _1; scanning: _4 = _2 & 3; scanning: return _4; local analysis of default_interrupt_routine ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; ;; Loop 1 ;; header 3, latch 4 ;; depth 1, outer 0 ;; nodes: 3 4 ;; 2 succs { 3 } ;; 3 succs { 4 } ;; 4 succs { 3 } cannot prove finiteness of loop 1 Function is locally looping. Function is locally const. local analysis of startup_go_to_user_mode scanning: return; Function is locally const. callgraph: sys_m7_cache_init/7 (sys_m7_cache_init) @06a3e700 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @06644b68 References: Referring: Function sys_m7_cache_init/7 is inline copy in SystemInit/6 Availability: local Function flags: count:10737418 (estimated locally) body local optimize_size Called by: SystemInit/6 (inlined) (10737418 (estimated locally),1.00 per call) Calls: SystemInit/6 (SystemInit) @06a3ee00 Type: function definition analyzed Visibility: externally_visible public Aux: @06644d28 References: rbar/0 (read)rasr/1 (read) Referring: Availability: available Function flags: count:10738492 (estimated locally) body optimize_size Called by: Calls: sys_m7_cache_init/7 (inlined) (10737418 (estimated locally),1.00 per call) Sys_GetCoreID/5 (Sys_GetCoreID) @06a3eb60 Type: function definition analyzed Visibility: externally_visible public Aux: @06644b08 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: default_interrupt_routine/4 (default_interrupt_routine) @06a3e8c0 Type: function definition analyzed Visibility: externally_visible public Aux: @06644d88 References: Referring: Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: startup_go_to_user_mode/3 (startup_go_to_user_mode) @06a3e620 Type: function definition analyzed Visibility: externally_visible public Aux: @06644da8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ordered call graph: reduced for nothrow sys_m7_cache_init/7 (sys_m7_cache_init) @06a3e700 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @06644b68 References: Referring: Function sys_m7_cache_init/7 is inline copy in SystemInit/6 Availability: local Function flags: count:10737418 (estimated locally) body local optimize_size Called by: SystemInit/6 (inlined) (10737418 (estimated locally),1.00 per call) Calls: SystemInit/6 (SystemInit) @06a3ee00 Type: function definition analyzed Visibility: externally_visible public Aux: @06644d28 References: rbar/0 (read)rasr/1 (read) Referring: Availability: available Function flags: count:10738492 (estimated locally) body optimize_size Called by: Calls: sys_m7_cache_init/7 (inlined) (10737418 (estimated locally),1.00 per call) Sys_GetCoreID/5 (Sys_GetCoreID) @06a3eb60 Type: function definition analyzed Visibility: externally_visible public Aux: @06644b08 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: default_interrupt_routine/4 (default_interrupt_routine) @06a3e8c0 Type: function definition analyzed Visibility: externally_visible public Aux: @06644d88 References: Referring: Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: startup_go_to_user_mode/3 (startup_go_to_user_mode) @06a3e620 Type: function definition analyzed Visibility: externally_visible public Aux: @06644da8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: MALLOC LATTICE Initial: sys_m7_cache_init: malloc_bottom SystemInit: malloc_bottom Sys_GetCoreID: malloc_bottom default_interrupt_routine: malloc_bottom startup_go_to_user_mode: malloc_bottom MALLOC LATTICE after propagation: sys_m7_cache_init: malloc_bottom SystemInit: malloc_bottom Sys_GetCoreID: malloc_bottom default_interrupt_routine: malloc_bottom startup_go_to_user_mode: malloc_bottom callgraph: sys_m7_cache_init/7 (sys_m7_cache_init) @06a3e700 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @06644e48 References: Referring: Function sys_m7_cache_init/7 is inline copy in SystemInit/6 Availability: local Function flags: count:10737418 (estimated locally) body local optimize_size Called by: SystemInit/6 (inlined) (10737418 (estimated locally),1.00 per call) Calls: SystemInit/6 (SystemInit) @06a3ee00 Type: function definition analyzed Visibility: externally_visible public Aux: @06644e88 References: rbar/0 (read)rasr/1 (read) Referring: Availability: available Function flags: count:10738492 (estimated locally) body optimize_size Called by: Calls: sys_m7_cache_init/7 (inlined) (10737418 (estimated locally),1.00 per call) Sys_GetCoreID/5 (Sys_GetCoreID) @06a3eb60 Type: function definition analyzed Visibility: externally_visible public Aux: @06644dc8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: default_interrupt_routine/4 (default_interrupt_routine) @06a3e8c0 Type: function definition analyzed Visibility: externally_visible public Aux: @06644e68 References: Referring: Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: startup_go_to_user_mode/3 (startup_go_to_user_mode) @06a3e620 Type: function definition analyzed Visibility: externally_visible public Aux: @06644c68 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ordered call graph: reduced SystemInit/6 (SystemInit) @06a3ee00 Type: function definition analyzed Visibility: externally_visible public Aux: @06644e88 References: rbar/0 (read)rasr/1 (read) Referring: Availability: available Function flags: count:10738492 (estimated locally) body optimize_size Called by: Calls: sys_m7_cache_init/7 (inlined) (10737418 (estimated locally),1.00 per call) sys_m7_cache_init/7 (sys_m7_cache_init) @06a3e700 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @06644e48 References: Referring: Function sys_m7_cache_init/7 is inline copy in SystemInit/6 Availability: local Function flags: count:10737418 (estimated locally) body local optimize_size Called by: SystemInit/6 (inlined) (10737418 (estimated locally),1.00 per call) Calls: Sys_GetCoreID/5 (Sys_GetCoreID) @06a3eb60 Type: function definition analyzed Visibility: externally_visible public Aux: @06644dc8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: default_interrupt_routine/4 (default_interrupt_routine) @06a3e8c0 Type: function definition analyzed Visibility: externally_visible public Aux: @06644e68 References: Referring: Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: startup_go_to_user_mode/3 (startup_go_to_user_mode) @06a3e620 Type: function definition analyzed Visibility: externally_visible public Aux: @06644c68 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Function found not to call free: startup_go_to_user_mode Function found not to call free: default_interrupt_routine Function found not to call free: Sys_GetCoreID sys_m7_cache_init () { uint32 ways; uint32 sets; uint32 ccsidr; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _10; [local count: 12992276]: # DEBUG BEGIN_STMT # DEBUG ccsidr => 0 # DEBUG BEGIN_STMT # DEBUG sets => 0 # DEBUG BEGIN_STMT # DEBUG ways => 0 # DEBUG BEGIN_STMT MEM[(struct S32_SCB_Type *)3758153728B].CSSELR ={v} 0; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT ccsidr_18 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCSIDR; # DEBUG ccsidr => ccsidr_18 # DEBUG BEGIN_STMT _1 = ccsidr_18 >> 13; sets_19 = _1 & 32767; # DEBUG sets => sets_19 [local count: 118111600]: # sets_11 = PHI # DEBUG sets => sets_11 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = ccsidr_18 >> 3; ways_20 = _2 & 1023; # DEBUG ways => ways_20 [local count: 1073741824]: # ways_12 = PHI # DEBUG ways => ways_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = sets_11 << 5; _4 = _3 & 16352; _5 = ways_12 << 30; _6 = _4 | _5; MEM[(struct S32_SCB_Type *)3758153728B].DCISW ={v} _6; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT ways_23 = ways_12 + 4294967295; # DEBUG ways => ways_23 if (ways_12 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 955630224]: goto ; [100.00%] [local count: 118111601]: # DEBUG BEGIN_STMT sets_24 = sets_11 + 4294967295; # DEBUG sets => sets_24 if (sets_11 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 105119325]: goto ; [100.00%] [local count: 12992276]: # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT _7 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; _8 = _7 | 65536; MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _8; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT MEM[(struct S32_SCB_Type *)3758153728B].ICIALLU ={v} 0; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT _9 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; _10 = _9 | 131072; MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _10; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); return; } SystemInit () { uint8 regionNum; uint32 coreMask; uint32 i; short unsigned int _1; short unsigned int _2; short unsigned int _3; long unsigned int _4; int _5; long unsigned int _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _28; unsigned char _29; unsigned char _30; [local count: 10738492]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG regionNum => 0 # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY Sys_GetCoreID # DEBUG BEGIN_STMT _28 ={v} MEM[(struct MSCM_Type *)1076232192B].CPXNUM; _29 = (unsigned char) _28; _30 = _29 & 3; # DEBUG coreId => _30 # DEBUG BEGIN_STMT switch (_30) [33.33%], case 0: [33.33%], case 1: [33.33%]> [local count: 3579139]: : # DEBUG BEGIN_STMT # DEBUG coreMask => 2 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 3579139]: : # DEBUG BEGIN_STMT # DEBUG coreMask => 0 # DEBUG BEGIN_STMT [local count: 10737418]: # coreMask_11 = PHI <1(2), 2(3), 0(4)> : # DEBUG coreMask => coreMask_11 # DEBUG BEGIN_STMT # DEBUG i => 0 goto ; [100.00%] [local count: 1063004406]: # DEBUG BEGIN_STMT _1 ={v} MEM[(struct MSCM_Type *)1076232192B].IRSPRC[i_10]; _2 = (short unsigned int) coreMask_11; _3 = _1 | _2; MEM[(struct MSCM_Type *)1076232192B].IRSPRC[i_10] ={v} _3; # DEBUG BEGIN_STMT i_27 = i_10 + 1; # DEBUG i => i_27 [local count: 1073741824]: # i_10 = PHI <0(5), i_27(6)> # DEBUG i => i_10 # DEBUG BEGIN_STMT if (i_10 != 240) goto ; [99.00%] else goto ; [1.00%] [local count: 10737418]: # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT # DEBUG regionNum => 0 goto ; [100.00%] [local count: 150243364]: # DEBUG BEGIN_STMT _4 = (long unsigned int) regionNum_12; MEM[(struct S32_MPU_Type *)3758153728B].RNR ={v} _4; # DEBUG BEGIN_STMT _5 = (int) regionNum_12; _6 = rbar[_5]; MEM[(struct S32_MPU_Type *)3758153728B].RBAR ={v} _6; # DEBUG BEGIN_STMT _7 = rasr[_5]; MEM[(struct S32_MPU_Type *)3758153728B].RASR ={v} _7; # DEBUG BEGIN_STMT regionNum_25 = regionNum_12 + 1; # DEBUG regionNum => regionNum_25 [local count: 160980783]: # regionNum_12 = PHI <0(8), regionNum_25(9)> # DEBUG regionNum => regionNum_12 # DEBUG BEGIN_STMT if (regionNum_12 != 14) goto ; [93.33%] else goto ; [6.67%] [local count: 10737418]: # DEBUG BEGIN_STMT _8 ={v} MEM[(struct S32_MPU_Type *)3758153728B].CTRL; _9 = _8 | 1; MEM[(struct S32_MPU_Type *)3758153728B].CTRL ={v} _9; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT sys_m7_cache_init (); return; } Sys_GetCoreID () { long unsigned int _1; unsigned char _2; uint8 _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 ={v} MEM[(struct MSCM_Type *)1076232192B].CPXNUM; _2 = (unsigned char) _1; _4 = _2 & 3; return _4; } default_interrupt_routine () { [local count: 107374]: [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] } startup_go_to_user_mode () { [local count: 1073741824]: # DEBUG BEGIN_STMT return; }