perform optimization for fc; add set-assign-return optimization