Bug 174762
| Summary: | B3 should have a reusable EffectsSet data structure | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | ||
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | All | ||
| OS: | All | ||
| Bug Depends on: | 174750 | ||
| Bug Blocks: | |||
Filip Pizlo
Currently there are a couple places (eliminateCommonSubexpressions and hoistLoopInvariantValues) that both construct a data structure that tracks the set of effects. When we are just tracking heap ranges, then a RangeSet<> will do. But sometimes we want to track that and the other things (control dependence, side exiting, things done to local state, etc). We basically want a version of Effects that tracks the set of effects: so the same boolean fields, but RangeSet<HeapRange> for reads/writes.
This would make some code a bit less yucky and a considerably less error-prone. It ought to be perf neutral, too (it just means flipping a handful more booleans).
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |