It's fine, except for the fact that the code fragment > + globals__io_get_gc_method(GC_Method), > + { GC_Method = accurate -> > + InvalidPatterns = [incr_sp] > + ; > + InvalidPatterns = [] > + }, is present twice. The pattern list ought to be computed once, either in peephole.m or in handle_options.m. Zoltan.