IPA function summary for sys_m7_cache_init/7 inlinable global time: 812.256203 self size: 38 global size: 38 min size: 0 self stack: 0 global stack: 0 size:35.000000, time:810.256203 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for SystemInit/6 inlinable global time: 732.867143 self size: 33 global size: 33 min size: 2 self stack: 0 global stack: 0 size:29.000000, time:720.868343 size:3.000000, time:1.999800, executed if:(not inlined) calls: sys_m7_cache_init/7 function not considered for inlining loop depth: 0 freq:1.00 size: 1 time: 10callee size:19 stack: 0 IPA function summary for Sys_GetCoreID/5 inlinable global time: 4.000000 self size: 5 global size: 5 min size: 0 self stack: 0 global stack: 0 size:2.000000, time:2.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for default_interrupt_routine/4 inlinable global time: 0.000000 self size: 2 global size: 2 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) calls: IPA function summary for startup_go_to_user_mode/3 inlinable global time: 2.000000 self size: 3 global size: 3 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: Flattening functions: Overall time estimate: 1551.123346 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in sys_m7_cache_init/7. Enqueueing calls in SystemInit/6. Enqueueing calls in Sys_GetCoreID/5. Enqueueing calls in default_interrupt_routine/4. Enqueueing calls in startup_go_to_user_mode/3. Considering sys_m7_cache_init/7 with 38 size to be inlined into SystemInit/6 in ../Project_Settings/Startup_Code/system.c:273 Estimated badness is -0.021069, frequency 1.00. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 1539.043310 weighted by profile: 0.000000 Why inlining failed? IPA function summary for SystemInit/6 inlinable global time: 1533.043310 self size: 33 global size: 67 min size: 2 self stack: 0 global stack: 0 size:64.000000, time:1531.043510 size:3.000000, time:1.999800, executed if:(not inlined) calls: sys_m7_cache_init/7 inlined loop depth: 0 freq:1.00 size: 1 time: 10callee size:19 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Sys_GetCoreID/5 inlinable global time: 4.000000 self size: 5 global size: 5 min size: 0 self stack: 0 global stack: 0 size:2.000000, time:2.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for default_interrupt_routine/4 inlinable global time: 0.000000 self size: 2 global size: 2 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) calls: IPA function summary for startup_go_to_user_mode/3 inlinable global time: 2.000000 self size: 3 global size: 3 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: Symbol table: sys_m7_cache_init/7 (sys_m7_cache_init) @06bce700 Type: function definition analyzed Visibility: prevailing_def_ironly 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) @06bcee00 Type: function definition analyzed Visibility: externally_visible public 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) @06bceb60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: default_interrupt_routine/4 (default_interrupt_routine) @06bce8c0 Type: function definition analyzed Visibility: externally_visible public 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) @06bce620 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: RESET_CATCH_CORE/2 (RESET_CATCH_CORE) @06bca900 Type: variable definition analyzed Visibility: externally_visible public References: Referring: Availability: available Varpool flags: initialized rasr/1 (rasr) @06b4d3a8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: SystemInit/6 (read) Availability: available Varpool flags: initialized read-only const-value-known rbar/0 (rbar) @06b4d2d0 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: SystemInit/6 (read) Availability: available Varpool flags: initialized read-only const-value-known ;; Function startup_go_to_user_mode (startup_go_to_user_mode, funcdef_no=0, decl_uid=4376, cgraph_uid=1, symbol_order=3) startup_go_to_user_mode () { [local count: 1073741824]: # DEBUG BEGIN_STMT return; } ;; Function default_interrupt_routine (default_interrupt_routine, funcdef_no=1, decl_uid=4061, cgraph_uid=2, symbol_order=4) (executed once) default_interrupt_routine () { [local count: 107374]: [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] } ;; Function Sys_GetCoreID (Sys_GetCoreID, funcdef_no=2, decl_uid=4053, cgraph_uid=3, symbol_order=5) 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; } ;; Function SystemInit (SystemInit, funcdef_no=3, decl_uid=4059, cgraph_uid=4, symbol_order=6) Symbols to be put in SSA form { D.4424 } Incremental SSA update started at block: 0 Number of blocks in CFG: 20 Number of blocks to update: 19 ( 95%) Merging blocks 11 and 13 Removing basic block 16 Removing basic block 18 Merging blocks 19 and 12 ;; 5 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ;; ;; Loop 3 ;; header 12, latch 14 ;; depth 1, outer 0 ;; nodes: 12 14 13 ;; ;; Loop 4 ;; header 13, latch 13 ;; depth 2, outer 3 ;; nodes: 13 ;; ;; Loop 2 ;; header 10, latch 9 ;; depth 1, outer 0 ;; nodes: 10 9 ;; ;; Loop 1 ;; header 7, latch 6 ;; depth 1, outer 0 ;; nodes: 7 6 ;; 2 succs { 4 5 3 } ;; 3 succs { 5 } ;; 4 succs { 5 } ;; 5 succs { 7 } ;; 6 succs { 7 } ;; 7 succs { 6 8 } ;; 8 succs { 10 } ;; 9 succs { 10 } ;; 10 succs { 9 11 } ;; 11 succs { 12 } ;; 12 succs { 13 } ;; 13 succs { 13 14 } ;; 14 succs { 12 15 } ;; 15 succs { 1 } SystemInit () { uint32 ccsidr; uint32 sets; uint32 ways; 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; long unsigned int _32; long unsigned int _34; long unsigned int _37; long unsigned int _38; long unsigned int _40; long unsigned int _41; long unsigned int _44; long unsigned int _45; long unsigned int _46; long unsigned int _47; [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 # DEBUG INLINE_ENTRY sys_m7_cache_init # 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_31 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCSIDR; # DEBUG ccsidr => ccsidr_31 # DEBUG BEGIN_STMT _32 = ccsidr_31 >> 13; sets_33 = _32 & 32767; # DEBUG sets => sets_33 [local count: 97612895]: # sets_36 = PHI # DEBUG sets => sets_36 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _34 = ccsidr_31 >> 3; ways_35 = _34 & 1023; # DEBUG ways => ways_35 [local count: 887389957]: # ways_39 = PHI # DEBUG ways => ways_39 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _37 = sets_36 << 5; _38 = _37 & 16352; _40 = ways_39 << 30; _41 = _38 | _40; MEM[(struct S32_SCB_Type *)3758153728B].DCISW ={v} _41; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT ways_42 = ways_39 + 4294967295; # DEBUG ways => ways_42 if (ways_39 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 97612895]: # DEBUG BEGIN_STMT sets_43 = sets_36 + 4294967295; # DEBUG sets => sets_43 if (sets_36 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 10737418]: # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT _44 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; _45 = _44 | 65536; MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _45; # 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 _46 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR; _47 = _46 | 131072; MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _47; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG ways => NULL # DEBUG sets => NULL # DEBUG ccsidr => NULL return; }