IPA function summary for vPortGetHeapStats/20 inlinable
  global time:     106.909092
  self size:       29
  global size:     29
  min size:       8
  self stack:      0
  global stack:    0
    size:18.500000, time:61.409091
    size:6.500000, time:5.500000,  executed if:(not inlined)
  calls:
    vPortExitCritical/24 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/23 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvInsertBlockIntoFreeList/19 inlinable
  global time:     43.612727
  self size:       30
  global size:     30
  min size:       0
  self stack:      0
  global stack:    0
    size:26.000000, time:41.312727
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.150000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.150000,  nonconst if:(op0[ref offset: 32] changed)
  calls:

IPA function summary for prvHeapInit/18 inlinable
  global time:     12.000000
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:10.000000, time:10.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

IPA function summary for vPortInitialiseBlocks/17 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:

IPA function summary for xPortGetMinimumEverFreeHeapSize/16 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:1.000000, time:1.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

IPA function summary for xPortGetFreeHeapSize/15 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:1.000000, time:1.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

IPA function summary for vPortFree/14 inlinable
  global time:     13.668150
  self size:       38
  global size:     38
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:0.722009,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.000000, time:0.700000,  executed if:(op0 != 0B),  nonconst if:(op0 changed) && (op0 != 0B)
    size:2.000000, time:0.586004,  executed if:(op0 != 0B) && (not inlined)
    size:26.000000, time:7.769013,  executed if:(op0 != 0B)
  calls:
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:0.06 size: 1 time: 10 predicate: (op0 != 0B)
    prvInsertBlockIntoFreeList/19 function not considered for inlining
      loop depth: 0 freq:0.06 size: 2 time: 11callee size:15 stack: 0 predicate: (op0 != 0B)
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.06 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for pvPortMalloc/13 inlinable
  global time:     61.960417
  self size:       82
  global size:     82
  min size:       10
  self stack:      0
  global stack:    0
    size:63.000000, time:33.578902
    size:3.000000, time:0.927373,  executed if:(not inlined)
    size:11.000000, time:6.043949,  nonconst if:(op0 changed)
  calls:
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:0.93 size: 1 time: 10
    prvInsertBlockIntoFreeList/19 function not considered for inlining
      loop depth: 0 freq:0.04 size: 2 time: 11callee size:15 stack: 0
    prvHeapInit/18 function not considered for inlining
      loop depth: 0 freq:0.17 size: 1 time: 10callee size: 6 stack: 0
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10


Flattening functions:
Overall time estimate: 246.150386 weighted by profile: 0.000000

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in vPortGetHeapStats/20.
Enqueueing calls in prvInsertBlockIntoFreeList/19.
Enqueueing calls in prvHeapInit/18.
Enqueueing calls in vPortInitialiseBlocks/17.
Enqueueing calls in xPortGetMinimumEverFreeHeapSize/16.
Enqueueing calls in xPortGetFreeHeapSize/15.
Enqueueing calls in vPortFree/14.
Enqueueing calls in pvPortMalloc/13.

Considering prvHeapInit/18 with 13 size
 to be inlined into pvPortMalloc/13 in ../FreeRTOS/Source/portable/MemMang/heap_4.c:128
 Estimated badness is -0.010215, frequency 0.17.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

Deciding on functions to be inlined into all callers and removing useless speculations:
Overall time estimate: 234.150386 weighted by profile: 0.000000

Why inlining failed?
function body not available                       :        8 calls, 6.049381 freq, 0 count
call is unlikely and code size would grow         :        2 calls, 0.096774 freq, 0 count
IPA function summary for vPortGetHeapStats/20 inlinable
  global time:     106.909092
  self size:       29
  global size:     29
  min size:       8
  self stack:      0
  global stack:    0
    size:18.500000, time:61.409091
    size:6.500000, time:5.500000,  executed if:(not inlined)
  calls:
    vPortExitCritical/24 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/23 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvInsertBlockIntoFreeList/19 inlinable
  global time:     43.612727
  self size:       30
  global size:     30
  min size:       26
  self stack:      0
  global stack:    0
  estimated growth:20
    size:26.000000, time:41.312727
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.150000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.150000,  nonconst if:(op0[ref offset: 32] changed)
  calls:

IPA function summary for vPortInitialiseBlocks/17 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:

IPA function summary for xPortGetMinimumEverFreeHeapSize/16 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:1.000000, time:1.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

IPA function summary for xPortGetFreeHeapSize/15 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:1.000000, time:1.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

IPA function summary for vPortFree/14 inlinable
  global time:     13.668150
  self size:       38
  global size:     38
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:0.722009,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.000000, time:0.700000,  executed if:(op0 != 0B),  nonconst if:(op0 changed) && (op0 != 0B)
    size:2.000000, time:0.586004,  executed if:(op0 != 0B) && (not inlined)
    size:26.000000, time:7.769013,  executed if:(op0 != 0B)
  calls:
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:0.06 size: 1 time: 10 predicate: (op0 != 0B)
    prvInsertBlockIntoFreeList/19 call is unlikely and code size would grow
      loop depth: 0 freq:0.06 size: 2 time: 11callee size:15 stack: 0 predicate: (op0 != 0B)
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.06 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for pvPortMalloc/13 inlinable
  global time:     61.960417
  self size:       82
  global size:     91
  min size:       18
  self stack:      0
  global stack:    0
    size:73.000000, time:35.321904
    size:3.000000, time:0.927373,  executed if:(not inlined)
    size:11.000000, time:6.043949,  nonconst if:(op0 changed)
  calls:
    xTaskResumeAll/22 function body not available
      loop depth: 0 freq:0.93 size: 1 time: 10
    prvInsertBlockIntoFreeList/19 call is unlikely and code size would grow
      loop depth: 0 freq:0.04 size: 2 time: 11callee size:15 stack: 0
    prvHeapInit/18 inlined
      loop depth: 0 freq:0.17 size: 1 time: 10callee size: 6 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

Symbol table:

vPortExitCritical/24 (vPortExitCritical) @06a8ee00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call) 
  Calls: 
vPortEnterCritical/23 (vPortEnterCritical) @06a8ec40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call) 
  Calls: 
xTaskResumeAll/22 (xTaskResumeAll) @06a8e2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call) vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (214748 (estimated locally),0.93 per call) 
  Calls: 
vTaskSuspendAll/21 (vTaskSuspendAll) @06a8e0e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vPortGetHeapStats/20 (168730857 (estimated locally),1.00 per call) vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (231566 (estimated locally),1.00 per call) 
  Calls: 
vPortGetHeapStats/20 (vPortGetHeapStats) @06a800e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xStart/6 (read)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulFrees/11 (read)xMinimumEverFreeBytesRemaining/9 (read)
  Referring: 
  Availability: available
  Function flags: count:168730857 (estimated locally) body optimize_size
  Called by: 
  Calls: vPortExitCritical/24 (168730858 (estimated locally),1.00 per call) vPortEnterCritical/23 (168730858 (estimated locally),1.00 per call) xTaskResumeAll/22 (168730858 (estimated locally),1.00 per call) vTaskSuspendAll/21 (168730857 (estimated locally),1.00 per call) 
prvInsertBlockIntoFreeList/19 (prvInsertBlockIntoFreeList) @06a80d20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: xStart/6 (addr)pxEnd/7 (read)
  Referring: 
  Availability: local
  Function flags: count:118111600 (estimated locally) body local optimize_size
  Called by: vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (8283 (estimated locally),0.04 per call) 
  Calls: 
prvHeapInit/18 (prvHeapInit) @06a80a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: ucHeap/4 (addr)xStart/6 (write)xStart/6 (write)pxEnd/7 (write)xMinimumEverFreeBytesRemaining/9 (write)xFreeBytesRemaining/8 (write)xBlockAllocatedBit/12 (write)
  Referring: 
  Function prvHeapInit/18 is inline copy in pvPortMalloc/13
  Availability: local
  Function flags: count:40362 (estimated locally) body local optimize_size
  Called by: pvPortMalloc/13 (inlined) (40362 (estimated locally),0.17 per call) 
  Calls: 
vPortInitialiseBlocks/17 (vPortInitialiseBlocks) @06a807e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xPortGetMinimumEverFreeHeapSize/16 (xPortGetMinimumEverFreeHeapSize) @06a80540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xMinimumEverFreeBytesRemaining/9 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xPortGetFreeHeapSize/15 (xPortGetFreeHeapSize) @06a802a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xFreeBytesRemaining/8 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
vPortFree/14 (vPortFree) @06a80000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xNumberOfSuccessfulFrees/11 (read)xNumberOfSuccessfulFrees/11 (write)
  Referring: 
  Availability: available
  Function flags: count:306783 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskResumeAll/22 (18715 (estimated locally),0.06 per call) prvInsertBlockIntoFreeList/19 (18715 (estimated locally),0.06 per call) vTaskSuspendAll/21 (18715 (estimated locally),0.06 per call) 
pvPortMalloc/13 (pvPortMalloc) @06a78ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pxEnd/7 (read)xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xStart/6 (read)xStart/6 (addr)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xMinimumEverFreeBytesRemaining/9 (read)xMinimumEverFreeBytesRemaining/9 (write)xBlockAllocatedBit/12 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulAllocations/10 (write)
  Referring: 
  Availability: available
  Function flags: count:231566 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskResumeAll/22 (214748 (estimated locally),0.93 per call) prvInsertBlockIntoFreeList/19 (8283 (estimated locally),0.04 per call) prvHeapInit/18 (inlined) (40362 (estimated locally),0.17 per call) vTaskSuspendAll/21 (231566 (estimated locally),1.00 per call) 
xBlockAllocatedBit/12 (xBlockAllocatedBit) @06acd678
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pvPortMalloc/13 (read)pvPortMalloc/13 (read)prvHeapInit/18 (write)vPortFree/14 (read)
  Availability: available
  Varpool flags: initialized
xNumberOfSuccessfulFrees/11 (xNumberOfSuccessfulFrees) @06acd5e8
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: vPortFree/14 (write)vPortFree/14 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags: initialized
xNumberOfSuccessfulAllocations/10 (xNumberOfSuccessfulAllocations) @06acd5a0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pvPortMalloc/13 (write)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags: initialized
xMinimumEverFreeBytesRemaining/9 (xMinimumEverFreeBytesRemaining) @06acd558
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: prvHeapInit/18 (write)xPortGetMinimumEverFreeHeapSize/16 (read)pvPortMalloc/13 (write)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags: initialized
xFreeBytesRemaining/8 (xFreeBytesRemaining) @06acd510
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: vPortFree/14 (write)pvPortMalloc/13 (read)prvHeapInit/18 (write)pvPortMalloc/13 (write)xPortGetFreeHeapSize/15 (read)pvPortMalloc/13 (read)vPortFree/14 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags: initialized
pxEnd/7 (pxEnd) @06acd480
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pvPortMalloc/13 (read)prvHeapInit/18 (write)prvInsertBlockIntoFreeList/19 (read)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags: initialized
xStart/6 (xStart) @06acd3f0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: prvHeapInit/18 (write)prvHeapInit/18 (write)pvPortMalloc/13 (addr)prvInsertBlockIntoFreeList/19 (addr)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read)
  Availability: available
  Varpool flags:
ucHeap/4 (ucHeap) @06acd120
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: prvHeapInit/18 (addr)
  Availability: available
  Varpool flags:

;; Function prvInsertBlockIntoFreeList (prvInsertBlockIntoFreeList, funcdef_no=10, decl_uid=6217, cgraph_uid=11, symbol_order=19)

prvInsertBlockIntoFreeList (struct BlockLink_t * pxBlockToInsert)
{
  struct BlockLink_t * pxIterator;
  struct A_BLOCK_LINK * _1;
  unsigned int _2;
  uint8_t * _3;
  unsigned int _5;
  unsigned int _6;
  unsigned int _7;
  uint8_t * _8;
  struct BlockLink_t * pxEnd.19_9;
  unsigned int _10;
  unsigned int _11;
  struct A_BLOCK_LINK * _12;
  struct A_BLOCK_LINK * _20;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxIterator => &xStart

  <bb 3> [local count: 1073741824]:
  # pxIterator_14 = PHI <&xStart(2), _1(14)>
  # DEBUG pxIterator => pxIterator_14
  # DEBUG BEGIN_STMT
  _1 = pxIterator_14->pxNextFreeBlock;
  if (_1 < pxBlockToInsert_19(D))
    goto <bb 14>; [89.00%]
  else
    goto <bb 4>; [11.00%]

  <bb 14> [local count: 955630223]:
  goto <bb 3>; [100.00%]

  <bb 4> [local count: 118111601]:
  # _20 = PHI <_1(3)>
  # pxIterator_4 = PHI <pxIterator_14(3)>
  # DEBUG BEGIN_STMT
  # DEBUG puc => pxIterator_4
  # DEBUG BEGIN_STMT
  _2 = pxIterator_4->xBlockSize;
  _3 = pxIterator_4 + _2;
  if (_3 == pxBlockToInsert_19(D))
    goto <bb 5>; [30.00%]
  else
    goto <bb 6>; [70.00%]

  <bb 5> [local count: 35433480]:
  # DEBUG BEGIN_STMT
  _5 = pxBlockToInsert_19(D)->xBlockSize;
  _6 = _2 + _5;
  pxIterator_4->xBlockSize = _6;
  # DEBUG BEGIN_STMT
  # DEBUG pxBlockToInsert => pxIterator_4

  <bb 6> [local count: 118111601]:
  # pxBlockToInsert_13 = PHI <pxBlockToInsert_19(D)(4), pxIterator_4(5)>
  # DEBUG pxBlockToInsert => pxBlockToInsert_13
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG puc => pxBlockToInsert_13
  # DEBUG BEGIN_STMT
  _7 = pxBlockToInsert_13->xBlockSize;
  _8 = pxBlockToInsert_13 + _7;
  if (_8 == _20)
    goto <bb 7>; [30.00%]
  else
    goto <bb 10>; [70.00%]

  <bb 7> [local count: 35433480]:
  # DEBUG BEGIN_STMT
  pxEnd.19_9 = pxEnd;
  if (pxEnd.19_9 != _20)
    goto <bb 8>; [70.00%]
  else
    goto <bb 9>; [30.00%]

  <bb 8> [local count: 24803436]:
  # DEBUG BEGIN_STMT
  _10 = _20->xBlockSize;
  _11 = _7 + _10;
  pxBlockToInsert_13->xBlockSize = _11;
  # DEBUG BEGIN_STMT
  _12 = _20->pxNextFreeBlock;
  pxBlockToInsert_13->pxNextFreeBlock = _12;
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 10630044]:
  # DEBUG BEGIN_STMT
  pxBlockToInsert_13->pxNextFreeBlock = pxEnd.19_9;
  goto <bb 11>; [100.00%]

  <bb 10> [local count: 82678120]:
  # DEBUG BEGIN_STMT
  pxBlockToInsert_13->pxNextFreeBlock = _20;

  <bb 11> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  if (pxIterator_4 != pxBlockToInsert_13)
    goto <bb 12>; [70.00%]
  else
    goto <bb 13>; [30.00%]

  <bb 12> [local count: 82678120]:
  # DEBUG BEGIN_STMT
  pxIterator_4->pxNextFreeBlock = pxBlockToInsert_13;

  <bb 13> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function pvPortMalloc (pvPortMalloc, funcdef_no=4, decl_uid=5892, cgraph_uid=5, symbol_order=13)


Symbols to be put in SSA form
{ D.6362 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 33
Number of blocks to update: 32 ( 97%)


Removing basic block 3
Merging blocks 17 and 26
Merging blocks 24 and 27
Removing basic block 28
Removing basic block 29
;; 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 16 17 18 19 20 21 22 23 24 25 26 27
;;
;; Loop 3
;;  header 19, latch 19
;;  depth 1, outer 0
;;  nodes: 19
;;
;; Loop 2
;;  header 26, latch 26
;;  depth 1, outer 0
;;  nodes: 26
;;
;; Loop 1
;;  header 13, latch 14
;;  depth 1, outer 0
;;  nodes: 13 14
;; 2 succs { 3 6 }
;; 3 succs { 4 5 }
;; 4 succs { 5 }
;; 5 succs { 6 }
;; 6 succs { 7 24 }
;; 7 succs { 8 24 }
;; 8 succs { 9 10 }
;; 9 succs { 10 24 }
;; 10 succs { 11 24 }
;; 11 succs { 12 24 }
;; 12 succs { 13 }
;; 13 succs { 14 15 }
;; 14 succs { 13 15 }
;; 15 succs { 16 24 }
;; 16 succs { 17 21 }
;; 17 succs { 18 20 }
;; 18 succs { 19 }
;; 19 succs { 19 }
;; 20 succs { 21 }
;; 21 succs { 22 23 }
;; 22 succs { 23 }
;; 23 succs { 24 }
;; 24 succs { 25 27 }
;; 25 succs { 26 }
;; 26 succs { 26 }
;; 27 succs { 1 }
pvPortMalloc (size_t xWantedSize)
{
  uint8_t * pucAlignedHeap;
  size_t uxAddress;
  size_t xTotalHeapSize;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  void * pvReturn;
  struct BlockLink_t * pxNewBlockLink;
  struct BlockLink_t * pxPreviousBlock;
  struct BlockLink_t * pxBlock;
  struct BlockLink_t * pxEnd.0_1;
  unsigned int xBlockAllocatedBit.1_2;
  unsigned int _3;
  unsigned int _4;
  unsigned int _5;
  unsigned int _6;
  unsigned int _7;
  unsigned int xFreeBytesRemaining.2_9;
  unsigned int _10;
  struct A_BLOCK_LINK * _11;
  struct BlockLink_t * pxEnd.3_12;
  struct A_BLOCK_LINK * _13;
  struct A_BLOCK_LINK * _14;
  unsigned int _15;
  unsigned int pxNewBlockLink.4_16;
  unsigned int _17;
  unsigned int xFreeBytesRemaining.5_18;
  unsigned int _19;
  unsigned int _20;
  unsigned int xMinimumEverFreeBytesRemaining.7_21;
  unsigned int xBlockAllocatedBit.9_22;
  unsigned int _23;
  unsigned int xNumberOfSuccessfulAllocations.10_24;
  unsigned int _25;
  unsigned int pvReturn.11_26;
  unsigned int _27;
  unsigned int _57;
  unsigned int _61;
  unsigned int _64;
  struct BlockLink_t * uxAddress.14_72;
  unsigned int _73;

  <bb 2> [local count: 231566]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pvReturn => 0B
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  pxEnd.0_1 = pxEnd;
  if (pxEnd.0_1 == 0B)
    goto <bb 3>; [17.43%]
  else
    goto <bb 6>; [82.57%]

  <bb 3> [local count: 40362]:
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY prvHeapInit
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG xTotalHeapSize => 8192
  # DEBUG BEGIN_STMT
  uxAddress_60 = (size_t) &ucHeap;
  # DEBUG uxAddress => uxAddress_60
  # DEBUG BEGIN_STMT
  _61 = uxAddress_60 & 7;
  if (_61 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 4> [local count: 20181]:
  # DEBUG BEGIN_STMT
  uxAddress_62 = uxAddress_60 + 7;
  # DEBUG uxAddress => uxAddress_62
  # DEBUG BEGIN_STMT
  uxAddress_63 = uxAddress_62 & 4294967288;
  # DEBUG uxAddress => uxAddress_63
  # DEBUG BEGIN_STMT
  _64 = 8192 - uxAddress_63;
  xTotalHeapSize_65 = uxAddress_60 + _64;
  # DEBUG xTotalHeapSize => xTotalHeapSize_65

  <bb 5> [local count: 40362]:
  # uxAddress_66 = PHI <uxAddress_60(3), uxAddress_63(4)>
  # xTotalHeapSize_68 = PHI <8192(3), xTotalHeapSize_65(4)>
  # DEBUG xTotalHeapSize => xTotalHeapSize_68
  # DEBUG uxAddress => uxAddress_66
  # DEBUG BEGIN_STMT
  pucAlignedHeap_67 = (uint8_t *) uxAddress_66;
  # DEBUG pucAlignedHeap => pucAlignedHeap_67
  # DEBUG BEGIN_STMT
  xStart.pxNextFreeBlock = pucAlignedHeap_67;
  # DEBUG BEGIN_STMT
  xStart.xBlockSize = 0;
  # DEBUG BEGIN_STMT
  uxAddress_69 = uxAddress_66 + xTotalHeapSize_68;
  # DEBUG uxAddress => uxAddress_69
  # DEBUG BEGIN_STMT
  uxAddress_70 = uxAddress_69 + 4294967288;
  # DEBUG uxAddress => uxAddress_70
  # DEBUG BEGIN_STMT
  uxAddress_71 = uxAddress_70 & 4294967288;
  # DEBUG uxAddress => uxAddress_71
  # DEBUG BEGIN_STMT
  uxAddress.14_72 = (struct BlockLink_t *) uxAddress_71;
  pxEnd = uxAddress.14_72;
  # DEBUG BEGIN_STMT
  uxAddress.14_72->xBlockSize = 0;
  # DEBUG BEGIN_STMT
  uxAddress.14_72->pxNextFreeBlock = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG pxFirstFreeBlock => pucAlignedHeap_67
  # DEBUG BEGIN_STMT
  _73 = uxAddress_71 - uxAddress_66;
  MEM[(struct BlockLink_t *)pucAlignedHeap_67].xBlockSize = _73;
  # DEBUG BEGIN_STMT
  MEM[(struct BlockLink_t *)pucAlignedHeap_67].pxNextFreeBlock = uxAddress.14_72;
  # DEBUG BEGIN_STMT
  xMinimumEverFreeBytesRemaining = _73;
  # DEBUG BEGIN_STMT
  xFreeBytesRemaining = _73;
  # DEBUG BEGIN_STMT
  xBlockAllocatedBit = 2147483648;

  <bb 6> [local count: 231566]:
  # DEBUG xTotalHeapSize => NULL
  # DEBUG uxAddress => NULL
  # DEBUG pucAlignedHeap => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xBlockAllocatedBit.1_2 = xBlockAllocatedBit;
  _3 = xBlockAllocatedBit.1_2 & xWantedSize_39(D);
  if (_3 == 0)
    goto <bb 7>; [83.25%]
  else
    goto <bb 24>; [16.75%]

  <bb 7> [local count: 192779]:
  # DEBUG BEGIN_STMT
  _4 = xWantedSize_39(D) + 4294967295;
  if (_4 <= 4294967286)
    goto <bb 8>; [71.00%]
  else
    goto <bb 24>; [29.00%]

  <bb 8> [local count: 136873]:
  # DEBUG BEGIN_STMT
  xWantedSize_40 = xWantedSize_39(D) + 8;
  # DEBUG xWantedSize => xWantedSize_40
  # DEBUG BEGIN_STMT
  _5 = xWantedSize_40 & 7;
  if (_5 != 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 9> [local count: 68436]:
  # DEBUG BEGIN_STMT
  _6 = xWantedSize_40 & 4294967288;
  _7 = _6 + 8;
  if (_7 > xWantedSize_40)
    goto <bb 10>; [71.00%]
  else
    goto <bb 24>; [29.00%]

  <bb 10> [local count: 117026]:
  # xWantedSize_28 = PHI <_7(9), xWantedSize_40(8)>
  # DEBUG xWantedSize => xWantedSize_28
  # DEBUG BEGIN_STMT
  if (xWantedSize_28 != 0)
    goto <bb 11>; [71.00%]
  else
    goto <bb 24>; [29.00%]

  <bb 11> [local count: 83089]:
  xFreeBytesRemaining.2_9 = xFreeBytesRemaining;
  if (xFreeBytesRemaining.2_9 >= xWantedSize_28)
    goto <bb 12>; [71.00%]
  else
    goto <bb 24>; [29.00%]

  <bb 12> [local count: 58993]:
  # DEBUG BEGIN_STMT
  # DEBUG pxPreviousBlock => &xStart
  # DEBUG BEGIN_STMT
  pxBlock_41 = xStart.pxNextFreeBlock;
  # DEBUG pxBlock => pxBlock_41
  # DEBUG BEGIN_STMT

  <bb 13> [local count: 551465]:
  # pxBlock_29 = PHI <pxBlock_41(12), _11(14)>
  # pxPreviousBlock_30 = PHI <&xStart(12), pxBlock_29(14)>
  # DEBUG pxPreviousBlock => pxPreviousBlock_30
  # DEBUG pxBlock => pxBlock_29
  # DEBUG BEGIN_STMT
  _10 = pxBlock_29->xBlockSize;
  if (_10 < xWantedSize_28)
    goto <bb 14>; [94.50%]
  else
    goto <bb 15>; [5.50%]

  <bb 14> [local count: 521134]:
  _11 = pxBlock_29->pxNextFreeBlock;
  if (_11 != 0B)
    goto <bb 13>; [94.50%]
  else
    goto <bb 15>; [5.50%]

  <bb 15> [local count: 58993]:
  # _57 = PHI <_10(13), _10(14)>
  # pxBlock_54 = PHI <pxBlock_29(13), pxBlock_29(14)>
  # pxPreviousBlock_8 = PHI <pxPreviousBlock_30(13), pxPreviousBlock_30(14)>
  # DEBUG BEGIN_STMT
  pxEnd.3_12 = pxEnd;
  if (pxEnd.3_12 != pxBlock_54)
    goto <bb 16>; [85.10%]
  else
    goto <bb 24>; [14.90%]

  <bb 16> [local count: 50203]:
  # DEBUG BEGIN_STMT
  _13 = pxPreviousBlock_8->pxNextFreeBlock;
  pvReturn_42 = _13 + 8;
  # DEBUG pvReturn => pvReturn_42
  # DEBUG BEGIN_STMT
  _14 = pxBlock_54->pxNextFreeBlock;
  pxPreviousBlock_8->pxNextFreeBlock = _14;
  # DEBUG BEGIN_STMT
  _15 = _57 - xWantedSize_28;
  if (_15 > 16)
    goto <bb 17>; [50.00%]
  else
    goto <bb 21>; [50.00%]

  <bb 17> [local count: 25102]:
  # DEBUG BEGIN_STMT
  pxNewBlockLink_44 = pxBlock_54 + xWantedSize_28;
  # DEBUG pxNewBlockLink => pxNewBlockLink_44
  # DEBUG BEGIN_STMT
  pxNewBlockLink.4_16 = (unsigned int) pxNewBlockLink_44;
  _17 = pxNewBlockLink.4_16 & 7;
  if (_17 != 0)
    goto <bb 18>; [67.00%]
  else
    goto <bb 20>; [33.00%]

  <bb 18> [local count: 16818]:
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mov %0, %1												
	msr basepri, %0											
	isb														
	dsb														
" : "=r" ulNewBASEPRI_55 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_55

  <bb 19> [local count: 168180375]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 19>; [100.00%]

  <bb 20> [local count: 8283]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pxNewBlockLink_44->xBlockSize = _15;
  # DEBUG BEGIN_STMT
  pxBlock_54->xBlockSize = xWantedSize_28;
  # DEBUG BEGIN_STMT
  prvInsertBlockIntoFreeList (pxNewBlockLink_44);

  <bb 21> [local count: 33385]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xFreeBytesRemaining.5_18 = xFreeBytesRemaining;
  _19 = pxBlock_54->xBlockSize;
  _20 = xFreeBytesRemaining.5_18 - _19;
  xFreeBytesRemaining = _20;
  # DEBUG BEGIN_STMT
  xMinimumEverFreeBytesRemaining.7_21 = xMinimumEverFreeBytesRemaining;
  if (_20 < xMinimumEverFreeBytesRemaining.7_21)
    goto <bb 22>; [50.00%]
  else
    goto <bb 23>; [50.00%]

  <bb 22> [local count: 16693]:
  # DEBUG BEGIN_STMT
  xMinimumEverFreeBytesRemaining = _20;

  <bb 23> [local count: 33385]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xBlockAllocatedBit.9_22 = xBlockAllocatedBit;
  _23 = _19 | xBlockAllocatedBit.9_22;
  pxBlock_54->xBlockSize = _23;
  # DEBUG BEGIN_STMT
  pxBlock_54->pxNextFreeBlock = 0B;
  # DEBUG BEGIN_STMT
  xNumberOfSuccessfulAllocations.10_24 = xNumberOfSuccessfulAllocations;
  _25 = xNumberOfSuccessfulAllocations.10_24 + 1;
  xNumberOfSuccessfulAllocations = _25;

  <bb 24> [local count: 214748]:
  # pvReturn_31 = PHI <0B(6), 0B(11), 0B(10), 0B(15), pvReturn_42(23), 0B(9), 0B(7)>
  # DEBUG xWantedSize => NULL
  # DEBUG pvReturn => pvReturn_31
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  pvReturn.11_26 = (unsigned int) pvReturn_31;
  _27 = pvReturn.11_26 & 7;
  if (_27 != 0)
    goto <bb 25>; [50.00%]
  else
    goto <bb 27>; [50.00%]

  <bb 25> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mov %0, %1												
	msr basepri, %0											
	isb														
	dsb														
" : "=r" ulNewBASEPRI_56 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_56

  <bb 26> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 26>; [100.00%]

  <bb 27> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return pvReturn_31;

}



;; Function vPortFree (vPortFree, funcdef_no=5, decl_uid=5894, cgraph_uid=6, symbol_order=14)

vPortFree (void * pv)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint8_t * puc;
  unsigned int _1;
  unsigned int xBlockAllocatedBit.21_2;
  unsigned int _3;
  struct A_BLOCK_LINK * _4;
  unsigned int _5;
  unsigned int _6;
  unsigned int _7;
  unsigned int xFreeBytesRemaining.24_8;
  unsigned int _9;
  unsigned int xNumberOfSuccessfulFrees.25_10;
  unsigned int _11;

  <bb 2> [local count: 306783]:
  # DEBUG BEGIN_STMT
  # DEBUG puc => pv_13(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pv_13(D) != 0B)
    goto <bb 3>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 3> [local count: 214748]:
  # DEBUG BEGIN_STMT
  puc_15 = pv_13(D) + 4294967288;
  # DEBUG puc => puc_15
  # DEBUG BEGIN_STMT
  # DEBUG pxLink => puc_15
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize;
  xBlockAllocatedBit.21_2 = xBlockAllocatedBit;
  _3 = _1 & xBlockAllocatedBit.21_2;
  if (_3 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 4> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mov %0, %1												
	msr basepri, %0											
	isb														
	dsb														
" : "=r" ulNewBASEPRI_22 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_22

  <bb 5> [local count: 1073741823]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 11> [local count: 1073741824]:
  goto <bb 5>; [100.00%]

  <bb 6> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].pxNextFreeBlock;
  if (_4 != 0B)
    goto <bb 7>; [82.57%]
  else
    goto <bb 9>; [17.43%]

  <bb 7> [local count: 88659]:
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mov %0, %1												
	msr basepri, %0											
	isb														
	dsb														
" : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_23

  <bb 8> [local count: 886588623]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 12> [local count: 886588623]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 18715]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = ~xBlockAllocatedBit.21_2;
  _6 = _1 & _5;
  MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize = _6;
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  _7 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize;
  xFreeBytesRemaining.24_8 = xFreeBytesRemaining;
  _9 = _7 + xFreeBytesRemaining.24_8;
  xFreeBytesRemaining = _9;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  prvInsertBlockIntoFreeList (puc_15);
  # DEBUG BEGIN_STMT
  xNumberOfSuccessfulFrees.25_10 = xNumberOfSuccessfulFrees;
  _11 = xNumberOfSuccessfulFrees.25_10 + 1;
  xNumberOfSuccessfulFrees = _11;
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();

  <bb 10> [local count: 110750]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function xPortGetFreeHeapSize (xPortGetFreeHeapSize, funcdef_no=6, decl_uid=5898, cgraph_uid=7, symbol_order=15)

xPortGetFreeHeapSize ()
{
  size_t _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = xFreeBytesRemaining;
  return _2;

}



;; Function xPortGetMinimumEverFreeHeapSize (xPortGetMinimumEverFreeHeapSize, funcdef_no=7, decl_uid=5900, cgraph_uid=8, symbol_order=16)

xPortGetMinimumEverFreeHeapSize ()
{
  size_t _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = xMinimumEverFreeBytesRemaining;
  return _2;

}



;; Function vPortInitialiseBlocks (vPortInitialiseBlocks, funcdef_no=8, decl_uid=5896, cgraph_uid=9, symbol_order=17)

vPortInitialiseBlocks ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function vPortGetHeapStats (vPortGetHeapStats, funcdef_no=11, decl_uid=5890, cgraph_uid=12, symbol_order=20)

vPortGetHeapStats (struct HeapStats_t * pxHeapStats)
{
  size_t xMinSize;
  size_t xMaxSize;
  size_t xBlocks;
  struct BlockLink_t * pxBlock;
  unsigned int _1;
  struct BlockLink_t * pxEnd.26_3;
  unsigned int xFreeBytesRemaining.27_4;
  unsigned int xNumberOfSuccessfulAllocations.28_5;
  unsigned int xNumberOfSuccessfulFrees.29_6;
  unsigned int xMinimumEverFreeBytesRemaining.30_7;

  <bb 2> [local count: 168730857]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG xBlocks => 0
  # DEBUG xMaxSize => 0
  # DEBUG xMinSize => 4294967295
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  pxBlock_17 = xStart.pxNextFreeBlock;
  # DEBUG pxBlock => pxBlock_17
  # DEBUG BEGIN_STMT
  if (pxBlock_17 != 0B)
    goto <bb 5>; [70.00%]
  else
    goto <bb 4>; [30.00%]

  <bb 5> [local count: 118111600]:

  <bb 3> [local count: 1073741824]:
  # pxBlock_8 = PHI <pxBlock_17(5), pxBlock_20(6)>
  # xBlocks_9 = PHI <0(5), xBlocks_18(6)>
  # xMaxSize_11 = PHI <0(5), xMaxSize_2(6)>
  # xMinSize_13 = PHI <4294967295(5), xMinSize_19(6)>
  # DEBUG xMinSize => xMinSize_13
  # DEBUG xMaxSize => xMaxSize_11
  # DEBUG xBlocks => xBlocks_9
  # DEBUG pxBlock => pxBlock_8
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xBlocks_18 = xBlocks_9 + 1;
  # DEBUG xBlocks => xBlocks_18
  # DEBUG BEGIN_STMT
  _1 = pxBlock_8->xBlockSize;
  xMaxSize_2 = MAX_EXPR <_1, xMaxSize_11>;
  # DEBUG xMaxSize => xMaxSize_2
  # DEBUG BEGIN_STMT
  xMinSize_19 = MIN_EXPR <_1, xMinSize_13>;
  # DEBUG xMinSize => xMinSize_19
  # DEBUG BEGIN_STMT
  pxBlock_20 = pxBlock_8->pxNextFreeBlock;
  # DEBUG pxBlock => pxBlock_20
  # DEBUG BEGIN_STMT
  pxEnd.26_3 = pxEnd;
  if (pxEnd.26_3 != pxBlock_20)
    goto <bb 6>; [89.00%]
  else
    goto <bb 4>; [11.00%]

  <bb 6> [local count: 955630225]:
  goto <bb 3>; [100.00%]

  <bb 4> [local count: 168730858]:
  # xBlocks_10 = PHI <0(2), xBlocks_18(3)>
  # xMaxSize_12 = PHI <0(2), xMaxSize_2(3)>
  # xMinSize_14 = PHI <4294967295(2), xMinSize_19(3)>
  # DEBUG xMinSize => xMinSize_14
  # DEBUG xMaxSize => xMaxSize_12
  # DEBUG xBlocks => xBlocks_10
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  pxHeapStats_22(D)->xSizeOfLargestFreeBlockInBytes = xMaxSize_12;
  # DEBUG BEGIN_STMT
  pxHeapStats_22(D)->xSizeOfSmallestFreeBlockInBytes = xMinSize_14;
  # DEBUG BEGIN_STMT
  pxHeapStats_22(D)->xNumberOfFreeBlocks = xBlocks_10;
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  xFreeBytesRemaining.27_4 = xFreeBytesRemaining;
  pxHeapStats_22(D)->xAvailableHeapSpaceInBytes = xFreeBytesRemaining.27_4;
  # DEBUG BEGIN_STMT
  xNumberOfSuccessfulAllocations.28_5 = xNumberOfSuccessfulAllocations;
  pxHeapStats_22(D)->xNumberOfSuccessfulAllocations = xNumberOfSuccessfulAllocations.28_5;
  # DEBUG BEGIN_STMT
  xNumberOfSuccessfulFrees.29_6 = xNumberOfSuccessfulFrees;
  pxHeapStats_22(D)->xNumberOfSuccessfulFrees = xNumberOfSuccessfulFrees.29_6;
  # DEBUG BEGIN_STMT
  xMinimumEverFreeBytesRemaining.30_7 = xMinimumEverFreeBytesRemaining;
  pxHeapStats_22(D)->xMinimumEverFreeBytesRemaining = xMinimumEverFreeBytesRemaining.30_7;
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  return;

}


