mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-23 10:08:00 +02:00
Fixed stack overflow, optimized DetectLoops
This commit is contained in:
parent
e2428a11a3
commit
7a27ab75bf
5 changed files with 122 additions and 36 deletions
|
@ -945,7 +945,9 @@ public:
|
|||
|
||||
BeVTrackingList* AllocEmptyList();
|
||||
BeVTrackingList* AddFiltered(BeVTrackingList* list, SizedArrayImpl<int>& indices, bool perserveChangeList);
|
||||
BeVTrackingList* AddFiltered(BeVTrackingList* list, int idx, bool perserveChangeList);
|
||||
BeVTrackingList* Add(BeVTrackingList* list, const SizedArrayImpl<int>& indices, bool perserveChangeList);
|
||||
BeVTrackingList* Add(BeVTrackingList* list, int idx, bool perserveChangeList);
|
||||
BeVTrackingList* ClearFiltered(BeVTrackingList* list, const SizedArrayImpl<int>& indices);
|
||||
BeVTrackingList* Modify(BeVTrackingList* list, const SizedArrayImpl<int>& adds, const SizedArrayImpl<int>& removes, SizedArrayImpl<int>& filteredAdds, SizedArrayImpl<int>& filteredRemoves);
|
||||
int FindIndex(BeVTrackingList* entry, int val);
|
||||
|
@ -978,9 +980,13 @@ public:
|
|||
BeMCContext* mMCContext;
|
||||
Array<Node> mNodes;
|
||||
|
||||
BfBitSet mBitSet;
|
||||
|
||||
public:
|
||||
BeMCLoopDetector(BeMCContext* context);
|
||||
void DetectLoops(BeMCBlock* mcBlock, BeVTrackingList* blocksSeen);
|
||||
|
||||
void DetectLoops(BeMCBlock* mcBlock);
|
||||
void DetectLoops();
|
||||
};
|
||||
|
||||
|
@ -1214,6 +1220,7 @@ public:
|
|||
DynMemStream& mOut;
|
||||
bool mDebugging;
|
||||
bool mFailed;
|
||||
int mDetectLoopIdx;
|
||||
|
||||
BeVTrackingContext mLivenessContext;
|
||||
BeVTrackingContext mVRegInitializedContext;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue