2015-02-11 18:18 GMT+00:00 Jiong Wang <jiong.w...@arm.com>: > > 2015-02-11 Jiong Wang <jiong.w...@arm.com> > > gcc/ > * loop-invariant.c (find_defs): Enable DF_DU_CHAIN build. > (vfp_const_iv): New hash table. > (expensive_addr_check_p): New boolean. > (init_inv_motion_data): Initialize new variables. > (free_inv_motion_data): Release hash table. > (create_new_invariant): Set cheap_address to false for iv in > vfp_const_iv table. > (find_invariant_insn): Skip dependencies check for iv in vfp_const_iv > table. > (use_for_single_du): New function. > (reshuffle_insn_with_vfp): Likewise. > (find_invariants_bb): Call reshuffle_insn_with_vfp.
For performance measurement: on AArch64: * this patch finds several hundreds new loop invariants across speck2k6. * one bench in spec2k6 float get +4.5% performance improvement. I guess similar improvements could be achieved on other RISC backend. Regards, Jiong