IPA function summary for PWM_for_dirve_mode/0 inlinable global time: 34.666600 self size: 54 global size: 54 min size: 60 self stack: 0 global stack: 0 size:21.000000, time:8.666600 size:3.000000, time:2.000000, executed if:(not inlined) calls: Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Flattening functions: Overall time estimate: 34.666600 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in PWM_for_dirve_mode/0. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 34.666600 weighted by profile: 0.000000 Why inlining failed? function body not available : 10 calls, 2.000000 freq, 0 count IPA function summary for PWM_for_dirve_mode/0 inlinable global time: 34.666600 self size: 54 global size: 54 min size: 60 self stack: 0 global stack: 0 size:21.000000, time:8.666600 size:3.000000, time:2.000000, executed if:(not inlined) calls: Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Set_PWM_Duty/3 function body not available loop depth: 0 freq:0.17 size: 3 time: 12 op0 is compile time invariant op1 is compile time invariant Symbol table: GV_PWM_2/4 (GV_PWM_2) @06ad3678 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (read)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write) Availability: not_available Varpool flags: Set_PWM_Duty/3 (Set_PWM_Duty) @06ad2460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: PWM_for_dirve_mode/0 (233860969 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (233860969 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (237404317 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (237404317 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (237404317 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (237404317 (estimated locally),0.22 per call) PWM_for_dirve_mode/0 (182536110 (estimated locally),0.17 per call) PWM_for_dirve_mode/0 (182536110 (estimated locally),0.17 per call) PWM_for_dirve_mode/0 (182536110 (estimated locally),0.17 per call) PWM_for_dirve_mode/0 (182536110 (estimated locally),0.17 per call) Calls: GV_PWM_1/2 (GV_PWM_1) @06ad35a0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: PWM_for_dirve_mode/0 (read)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write)PWM_for_dirve_mode/0 (write) Availability: not_available Varpool flags: GV_Operation_Mode/1 (GV_Operation_Mode) @06ad3558 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: PWM_for_dirve_mode/0 (read) Availability: not_available Varpool flags: PWM_for_dirve_mode/0 (PWM_for_dirve_mode) @06ad2000 Type: function definition analyzed Visibility: externally_visible public References: GV_Operation_Mode/1 (read)GV_PWM_1/2 (read)GV_PWM_1/2 (write)GV_PWM_2/4 (write)GV_PWM_1/2 (write)GV_PWM_2/4 (write)GV_PWM_2/4 (read)GV_PWM_2/4 (write)GV_PWM_1/2 (write)GV_PWM_2/4 (write)GV_PWM_1/2 (write)GV_PWM_2/4 (write)GV_PWM_1/2 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Set_PWM_Duty/3 (233860969 (estimated locally),0.22 per call) Set_PWM_Duty/3 (233860969 (estimated locally),0.22 per call) Set_PWM_Duty/3 (237404317 (estimated locally),0.22 per call) Set_PWM_Duty/3 (237404317 (estimated locally),0.22 per call) Set_PWM_Duty/3 (237404317 (estimated locally),0.22 per call) Set_PWM_Duty/3 (237404317 (estimated locally),0.22 per call) Set_PWM_Duty/3 (182536110 (estimated locally),0.17 per call) Set_PWM_Duty/3 (182536110 (estimated locally),0.17 per call) Set_PWM_Duty/3 (182536110 (estimated locally),0.17 per call) Set_PWM_Duty/3 (182536110 (estimated locally),0.17 per call) ;; Function PWM_for_dirve_mode (PWM_for_dirve_mode, funcdef_no=0, decl_uid=5250, cgraph_uid=1, symbol_order=0) PWM_for_dirve_mode () { unsigned char GV_Operation_Mode.0_1; unsigned char GV_PWM_1.1_2; unsigned char GV_PWM_2.3_3; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Operation_Mode.0_1 = GV_Operation_Mode; if (GV_Operation_Mode.0_1 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 365072220]: # DEBUG BEGIN_STMT GV_PWM_1.1_2 = GV_PWM_1; if (GV_PWM_1.1_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 182536110]: # DEBUG BEGIN_STMT Set_PWM_Duty (0, 1.0e+2); # DEBUG BEGIN_STMT Set_PWM_Duty (1, 0.0); # DEBUG BEGIN_STMT GV_PWM_1 = 1; # DEBUG BEGIN_STMT GV_PWM_2 = 0; goto ; [100.00%] [local count: 182536110]: # DEBUG BEGIN_STMT Set_PWM_Duty (0, 0.0); # DEBUG BEGIN_STMT Set_PWM_Duty (1, 0.0); # DEBUG BEGIN_STMT GV_PWM_1 = 0; # DEBUG BEGIN_STMT GV_PWM_2 = 0; goto ; [100.00%] [local count: 708669605]: # DEBUG BEGIN_STMT if (GV_Operation_Mode.0_1 == 0) goto ; [67.00%] else goto ; [33.00%] [local count: 474808635]: # DEBUG BEGIN_STMT GV_PWM_2.3_3 = GV_PWM_2; if (GV_PWM_2.3_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 237404317]: # DEBUG BEGIN_STMT Set_PWM_Duty (1, 1.0e+2); # DEBUG BEGIN_STMT Set_PWM_Duty (0, 0.0); # DEBUG BEGIN_STMT GV_PWM_2 = 1; # DEBUG BEGIN_STMT GV_PWM_1 = 0; goto ; [100.00%] [local count: 237404317]: # DEBUG BEGIN_STMT Set_PWM_Duty (1, 0.0); # DEBUG BEGIN_STMT Set_PWM_Duty (0, 0.0); # DEBUG BEGIN_STMT GV_PWM_2 = 0; # DEBUG BEGIN_STMT GV_PWM_1 = 0; goto ; [100.00%] [local count: 233860969]: # DEBUG BEGIN_STMT Set_PWM_Duty (1, 0.0); # DEBUG BEGIN_STMT Set_PWM_Duty (0, 0.0); # DEBUG BEGIN_STMT GV_PWM_2 = 0; # DEBUG BEGIN_STMT GV_PWM_1 = 0; [local count: 1073741824]: return; }