On Sat, 2024-06-29 at 02:47 -0700, Eduard Zingerman wrote: [...] > Technically, the transformation is split into the following phases: > - during check_cfg() function update_nocsr_pattern_marks() is used to > find potential patterns; > - upon stack read or write access, > function check_nocsr_stack_contract() is used to verify if > stack offsets, presumably reserved for nocsr patterns, are used > only from those patterns; > - function remove_nocsr_spills_fills(), called from bpf_check(), > applies the rewrite for valid patterns. Talked to Andrii today, he asked to make the following changes: - move update_nocsr_pattern_marks() from check_cfg() to a separate pass; - make remove_nocsr_spills_fills() a part of do_misc_fixups() I'll wait for some comments before submitting v2. [...]