Hi Richard, The attached patch tries to fold strlen (s) eq/ne 0 to *s eq/ne 0 on GIMPLE. I am not sure where was the ideal place to put this transform in and ended up adding it to strlen_optimize_stmt(). Does that look OK ? I needed to add TODO_update_ssa to strlen pass, otherwise we hit the following assert in execute_todo(): if (flag_checking && cfun && need_ssa_update_p (cfun)) gcc_assert (flags & TODO_update_ssa_any); Bootstrap+test in progress on x86_64-unknown-linux-gnu. Thanks, Prathamesh