Which transformation passes are 'safe', meaning it does not worsens the effectiveness of a later pass or the generated code? I imagine all passes which either removes data or add attributes are included in this list, plus some simplification passes: -adce -argpromotion -constmerge -constprop -deadargelim -dse -functionattrs -globaldce -globalopt -gvn -instcombine -internalize -ipconstprop -ipsccp -licm -prune-eh -sccp Also, is there any redundant pass in this list (things line sccp/ipsccp)?