Closed Bug 440464 Opened 16 years ago Closed 16 years ago

Allow tree branches on merge trees

Categories

(Tamarin Graveyard :: Tracing Virtual Machine, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: edwsmith, Assigned: edwsmith)

References

Details

Attachments

(1 file, 1 obsolete file)

Current tree code doesn't allow *any* branch on merge nodes.  its possible to have non-tree branches on merge nodes, at least, but should also be possible to have real tree branches too.

trees starting with CFGMERGE are like any other tree, except their root points to some other anchor fragment rather than themself.

- add Fragment.root, separate from Fragment.anchor
- use root for tree identification purposes
- use anchor for detecting traces that return to the loop header
Attachment #325786 - Flags: review?(rreitmai)
Comment on attachment 325786 [details] [diff] [review]
passes tests, traces merge nodes, but needs to be merged to tip

nice idea replacing pointing back to the guard instruction from the GuardRecord.  You can then use this location as a starting point for populating the trackers when you cot().

Also, don't worry about keeping sid and gid around.  Although it would be handy to somehow label the branches differently from other traces.
Attachment #325786 - Flags: review?(rreitmai) → review+
This is probably enough for one patch:
- enable branches from merge nodes
- COT branches optimized in context of parent (CSE and RegionTracker's recovered)
- minor readability improvements for verbose and stats output
Attachment #325786 - Attachment is obsolete: true
Attachment #326037 - Flags: review?(rreitmai)
Comment on attachment 326037 [details] [diff] [review]
reconstruct CSE and RegionTracker state on branches

looks good.  So it looks like cse is turned off for cot()'s ?
Attachment #326037 - Flags: review?(rreitmai) → review+
cse in cot() is enabled, the logic is a little funky because i build the pipeline in one place and later need access to the CseWriter to initialize it.  i will refactor it.
changeset:   431:4a4031d2e656
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: