Analyzing function: Lin_Ip_MakeChecksumByte/2 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 11 8 9 10 13 12 ;; ;; Loop 1 ;; header 13, latch 10 ;; depth 1, outer 0 ;; nodes: 13 10 8 9 ;; 2 succs { 3 11 } ;; 3 succs { 4 11 } ;; 4 succs { 5 11 } ;; 5 succs { 6 11 } ;; 6 succs { 11 } ;; 11 succs { 13 } ;; 8 succs { 9 10 } ;; 9 succs { 10 } ;; 10 succs { 13 } ;; 13 succs { 8 12 } ;; 12 succs { 1 } Analyzing function body size: Lin_Ip_MakeChecksumByte IPA function summary for Lin_Ip_MakeChecksumByte/2 inlinable global time: 78.538920 self size: 21 global size: 0 min size: 0 self stack: 0 global stack: 0 size:10.000000, time:71.772728 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:2.000000, time:1.320000, executed if:(op2 != 60), nonconst if:(op2 changed) && (op2 != 60) size:2.000000, time:0.871200, executed if:(op2 != 125) && (op2 != 60), nonconst if:(op2 changed) && (op2 != 125) && (op2 != 60) size:2.000000, time:0.574992, executed if:(op2 != 254) && (op2 != 125) && (op2 != 60), nonconst if:(op2 changed) && (op2 != 254) && (op2 != 125) && (op2 != 60) loop iterations:(op1 changed) calls: Analyzing function: Lin_Ip_ProcessParity/1 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 ;; 2 succs { 4 3 } ;; 3 succs { 4 } ;; 4 succs { 5 7 } ;; 5 succs { 9 6 } ;; 6 succs { 9 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 1 } Analyzing function body size: Lin_Ip_ProcessParity IPA function summary for Lin_Ip_ProcessParity/1 inlinable global time: 25.000000 self size: 28 global size: 0 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) size:19.000000, time:19.000000, nonconst if:(op0 changed) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:2.000000, time:1.000000, executed if:(op1 != 0), nonconst if:(op1 changed) && (op1 != 0) size:2.000000, time:1.000000, executed if:(op1 == 0), nonconst if:(op0 changed) && (op1 == 0) calls: Symbol table: Lin_Ip_MakeChecksumByte/2 (Lin_Ip_MakeChecksumByte) @05c86e00 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Lin_Ip_ProcessParity/1 (Lin_Ip_ProcessParity) @05c86b60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Lin_Ip_MakeChecksumByte (const uint8 * pBuffer, const uint8 u8SizeBuffer, const uint8 u8Pid) { uint16 checksum; uint8 length; sizetype _1; const uint8 * _2; unsigned char _3; short unsigned int _4; unsigned char _6; uint8 _15; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG checksum => 0 # DEBUG BEGIN_STMT if (u8Pid_12(D) != 60) goto ; [66.00%] else goto ; [34.00%] [local count: 77953656]: if (u8Pid_12(D) != 125) goto ; [66.00%] else goto ; [34.00%] [local count: 51449413]: if (u8Pid_12(D) != 254) goto ; [66.00%] else goto ; [34.00%] [local count: 33956613]: if (u8Pid_12(D) != 191) goto ; [66.00%] else goto ; [34.00%] [local count: 22411364]: # DEBUG BEGIN_STMT checksum_13 = (uint16) u8Pid_12(D); # DEBUG checksum => checksum_13 [local count: 118111600]: # length_8 = PHI <0(3), 0(2), 0(6), 0(4), 0(5)> # checksum_11 = PHI <0(3), 0(2), checksum_13(6), 0(4), 0(5)> goto ; [100.00%] [local count: 955630224]: # DEBUG BEGIN_STMT _1 = (sizetype) length_7; _2 = pBuffer_17(D) + _1; _3 = *_2; _4 = (short unsigned int) _3; checksum_18 = _4 + checksum_10; # DEBUG checksum => checksum_18 # DEBUG BEGIN_STMT if (checksum_18 > 255) goto ; [50.00%] else goto ; [50.00%] [local count: 477815112]: # DEBUG BEGIN_STMT checksum_19 = checksum_18 + 65281; # DEBUG checksum => checksum_19 [local count: 955630224]: # checksum_9 = PHI # DEBUG checksum => checksum_9 # DEBUG BEGIN_STMT length_20 = length_7 + 1; # DEBUG length => length_20 [local count: 1073741824]: # length_7 = PHI # checksum_10 = PHI # DEBUG checksum => checksum_10 # DEBUG length => length_7 # DEBUG BEGIN_STMT if (length_7 < u8SizeBuffer_14(D)) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # checksum_5 = PHI # DEBUG BEGIN_STMT _6 = (unsigned char) checksum_5; _15 = ~_6; return _15; } Lin_Ip_ProcessParity (const uint8 u8Pid, const Lin_Ip_ParityActionType eTypeAction) { uint8 retVal; uint8 u8CalPid; unsigned char _1; unsigned char _2; unsigned char iftmp.0_4; unsigned char _7; unsigned char _9; int _10; unsigned char _11; unsigned char _14; int _15; unsigned char _16; unsigned char _17; unsigned char _18; int _19; unsigned char _20; unsigned char _21; int _22; unsigned char _23; unsigned char _24; int _25; unsigned char _26; int _27; unsigned char _28; [local count: 1073741824]: # DEBUG BEGIN_STMT u8CalPid_6 = u8Pid_5(D) & 63; # DEBUG u8CalPid => u8CalPid_6 # DEBUG BEGIN_STMT # DEBUG retVal => 255 # DEBUG BEGIN_STMT # DEBUG A => u8Pid_5(D) # DEBUG B => 0 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _27 = (int) u8Pid_5(D); # DEBUG A => NULL # DEBUG B => NULL # DEBUG A => u8Pid_5(D) # DEBUG B => 1 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _25 = _27 >> 1; _26 = (unsigned char) _25; # DEBUG A => NULL # DEBUG B => NULL _7 = u8Pid_5(D) ^ _26; # DEBUG A => u8Pid_5(D) # DEBUG B => 2 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _22 = _27 >> 2; _23 = (unsigned char) _22; # DEBUG A => NULL # DEBUG B => NULL _28 = _7 ^ _23; # DEBUG A => u8Pid_5(D) # DEBUG B => 4 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _19 = _27 >> 4; _20 = (unsigned char) _19; # DEBUG A => NULL # DEBUG B => NULL _24 = _20 ^ _28; _21 = _24 << 6; _1 = _21 & 64; # DEBUG A => u8Pid_5(D) # DEBUG B => 1 # DEBUG INLINE_ENTRY NULL # DEBUG BEGIN_STMT # DEBUG A => NULL # DEBUG B => NULL # DEBUG A => u8Pid_5(D) # DEBUG B => 3 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _15 = _27 >> 3; _16 = (unsigned char) _15; # DEBUG A => NULL # DEBUG B => NULL _18 = _16 ^ _26; # DEBUG A => u8Pid_5(D) # DEBUG B => 4 # DEBUG INLINE_ENTRY NULL # DEBUG BEGIN_STMT # DEBUG A => NULL # DEBUG B => NULL _17 = _18 ^ _20; # DEBUG A => u8Pid_5(D) # DEBUG B => 5 # DEBUG INLINE_ENTRY BIT # DEBUG BEGIN_STMT _10 = _27 >> 5; _9 = (unsigned char) _10; # DEBUG A => NULL # DEBUG B => NULL _14 = _9 ^ _17; _2 = _14 & 1; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # iftmp.0_4 = PHI <128(2), 0(3)> _11 = _1 | iftmp.0_4; u8CalPid_12 = u8CalPid_6 | _11; # DEBUG u8CalPid => u8CalPid_12 # DEBUG BEGIN_STMT if (eTypeAction_13(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (u8Pid_5(D) != u8CalPid_12) goto ; [51.11%] else goto ; [48.89%] [local count: 262476189]: # DEBUG BEGIN_STMT # DEBUG retVal => u8CalPid_6 goto ; [100.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (eTypeAction_13(D) == 1) goto ; [48.89%] else goto ; [51.11%] [local count: 262476189]: # DEBUG BEGIN_STMT # DEBUG retVal => u8CalPid_12 [local count: 1073741824]: # retVal_3 = PHI # DEBUG retVal => retVal_3 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return retVal_3; }