adiar
adiar copied to clipboard
Move `reduce` taint flag out of `e.target()`
We ought to move the taint flag from the e.target().is_flagged()
into a separate e.flags[REDUCE_FLAG::CUT_TAINT]
. This provides the basis for us to add many of the extensions.
- For #433, we need to free the current flag to be used for the complementation flag.
- #434 requires forwarding the hash of the children.
- #435 requires knowing the variable describing the node and describing its children.
Tasks
- [ ] Define
reduce_arc
type to publicly inherit fromarc
- [ ] Add private
uint8_t flags
variable and aflag(enum)
function to access it. Addset_flag(enum)
to set the flag. - [ ] Replace usage of the flagging on target with using the flag.
See #479 for a reference implementation. But, it probably needs to be fully reimplemented from scratch to deal with the merge conflicts.