IPA constant propagation start: IPA structures before propagation: Jump functions: Jump functions of caller uxListRemove/8: Jump functions of caller vListInsert/7: Jump functions of caller vListInsertEnd/6: Jump functions of caller vListInitialiseItem/5: Jump functions of caller vListInitialise/4: Propagating constants: Not considering uxListRemove for cloning; -fipa-cp-clone disabled. Not considering vListInsert for cloning; -fipa-cp-clone disabled. Not considering vListInsertEnd for cloning; -fipa-cp-clone disabled. Not considering vListInitialiseItem for cloning; -fipa-cp-clone disabled. Not considering vListInitialise for cloning; -fipa-cp-clone disabled. overall_size: 63, max_new_size: 11001 IPA lattices after all propagation: Lattices: Node: uxListRemove/8: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vListInsert/7: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vListInsertEnd/6: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vListInitialiseItem/5: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vListInitialise/4: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM IPA decision stage: IPA constant propagation end Reclaiming functions: Reclaiming variables: Clearing address taken flags: Symbol table: uxListRemove/8 (uxListRemove) @05e53ee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vListInsert/7 (vListInsert) @05e53c40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:178956970 (estimated locally) body optimize_size Called by: Calls: vListInsertEnd/6 (vListInsertEnd) @05e539a0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vListInitialiseItem/5 (vListInitialiseItem) @05e53700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vListInitialise/4 (vListInitialise) @05e53460 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ;; Function vListInitialise (vListInitialise, funcdef_no=4, decl_uid=5982, cgraph_uid=5, symbol_order=4) Modification phase of node vListInitialise/4 vListInitialise (struct List_t * const pxList) { struct MiniListItem_t * _1; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = &pxList_2(D)->xListEnd; pxList_2(D)->pxIndex = _1; # DEBUG BEGIN_STMT pxList_2(D)->xListEnd.xItemValue = 4294967295; # DEBUG BEGIN_STMT pxList_2(D)->xListEnd.pxNext = _1; # DEBUG BEGIN_STMT pxList_2(D)->xListEnd.pxPrevious = _1; # DEBUG BEGIN_STMT pxList_2(D)->uxNumberOfItems ={v} 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return; } ;; Function vListInitialiseItem (vListInitialiseItem, funcdef_no=5, decl_uid=5984, cgraph_uid=6, symbol_order=5) Modification phase of node vListInitialiseItem/5 vListInitialiseItem (struct ListItem_t * const pxItem) { [local count: 1073741824]: # DEBUG BEGIN_STMT pxItem_2(D)->pvContainer = 0B; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return; } ;; Function vListInsertEnd (vListInsertEnd, funcdef_no=6, decl_uid=5990, cgraph_uid=7, symbol_order=6) Modification phase of node vListInsertEnd/6 vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem) { struct ListItem_t * const pxIndex; struct xLIST_ITEM * _1; struct xLIST_ITEM * _2; long unsigned int _3; long unsigned int _4; [local count: 1073741824]: # DEBUG BEGIN_STMT pxIndex_7 = pxList_6(D)->pxIndex; # DEBUG pxIndex => pxIndex_7 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxNewListItem_8(D)->pxNext = pxIndex_7; # DEBUG BEGIN_STMT _1 = pxIndex_7->pxPrevious; pxNewListItem_8(D)->pxPrevious = _1; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = pxIndex_7->pxPrevious; _2->pxNext = pxNewListItem_8(D); # DEBUG BEGIN_STMT pxIndex_7->pxPrevious = pxNewListItem_8(D); # DEBUG BEGIN_STMT pxNewListItem_8(D)->pvContainer = pxList_6(D); # DEBUG BEGIN_STMT _3 ={v} pxList_6(D)->uxNumberOfItems; _4 = _3 + 1; pxList_6(D)->uxNumberOfItems ={v} _4; return; } ;; Function vListInsert (vListInsert, funcdef_no=7, decl_uid=5987, cgraph_uid=8, symbol_order=7) Modification phase of node vListInsert/7 vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem) { const TickType_t xValueOfInsertion; struct ListItem_t * pxIterator; struct xLIST_ITEM * _1; long unsigned int _2; struct xLIST_ITEM * _3; long unsigned int _4; long unsigned int _5; [local count: 178956970]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xValueOfInsertion_10 = pxNewListItem_9(D)->xItemValue; # DEBUG xValueOfInsertion => xValueOfInsertion_10 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xValueOfInsertion_10 == 4294967295) goto ; [34.00%] else goto ; [66.00%] [local count: 60845370]: # DEBUG BEGIN_STMT pxIterator_13 = pxList_11(D)->xListEnd.pxPrevious; # DEBUG pxIterator => pxIterator_13 goto ; [100.00%] [local count: 118111600]: # DEBUG BEGIN_STMT pxIterator_12 = &pxList_11(D)->xListEnd; # DEBUG pxIterator => pxIterator_12 [local count: 1073741824]: # pxIterator_6 = PHI # DEBUG pxIterator => pxIterator_6 # DEBUG BEGIN_STMT _1 = pxIterator_6->pxNext; _2 = _1->xItemValue; if (_2 <= xValueOfInsertion_10) goto ; [89.00%] else goto ; [11.00%] [local count: 955630223]: goto ; [100.00%] [local count: 178956970]: # pxIterator_7 = PHI # DEBUG pxIterator => pxIterator_7 # DEBUG BEGIN_STMT _3 = pxIterator_7->pxNext; pxNewListItem_9(D)->pxNext = _3; # DEBUG BEGIN_STMT _3->pxPrevious = pxNewListItem_9(D); # DEBUG BEGIN_STMT pxNewListItem_9(D)->pxPrevious = pxIterator_7; # DEBUG BEGIN_STMT pxIterator_7->pxNext = pxNewListItem_9(D); # DEBUG BEGIN_STMT pxNewListItem_9(D)->pvContainer = pxList_11(D); # DEBUG BEGIN_STMT _4 ={v} pxList_11(D)->uxNumberOfItems; _5 = _4 + 1; pxList_11(D)->uxNumberOfItems ={v} _5; return; } ;; Function uxListRemove (uxListRemove, funcdef_no=8, decl_uid=5992, cgraph_uid=9, symbol_order=8) Modification phase of node uxListRemove/8 uxListRemove (struct ListItem_t * const pxItemToRemove) { struct List_t * const pxList; struct xLIST_ITEM * _1; struct xLIST_ITEM * _2; struct ListItem_t * _3; long unsigned int _4; long unsigned int _5; UBaseType_t _15; [local count: 1073741824]: # DEBUG BEGIN_STMT pxList_9 = pxItemToRemove_8(D)->pvContainer; # DEBUG pxList => pxList_9 # DEBUG BEGIN_STMT _1 = pxItemToRemove_8(D)->pxNext; _2 = pxItemToRemove_8(D)->pxPrevious; _1->pxPrevious = _2; # DEBUG BEGIN_STMT _2->pxNext = _1; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = pxList_9->pxIndex; if (_3 == pxItemToRemove_8(D)) goto ; [30.00%] else goto ; [70.00%] [local count: 322122547]: # DEBUG BEGIN_STMT pxList_9->pxIndex = _2; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxItemToRemove_8(D)->pvContainer = 0B; # DEBUG BEGIN_STMT _4 ={v} pxList_9->uxNumberOfItems; _5 = _4 + 4294967295; pxList_9->uxNumberOfItems ={v} _5; # DEBUG BEGIN_STMT _15 ={v} pxList_9->uxNumberOfItems; return _15; }