{"push_id":578102023,"size":1,"distinct_size":1,"ref":"refs/heads/4.9.3","head":"fb33c4e2aef0c2816f8ac60070325bc15341dfaf","before":"6a0707411efdcd8bbebad63e78a192051cfdc4a4","commits":[{"sha":"fb33c4e2aef0c2816f8ac60070325bc15341dfaf","author":{"email":"d8bfad4b74d554312313bd842f4d05364c1ffadd@google.com","name":"Carrot Wei"},"message":"[4.9] Add simplify-got\n\nThis pass optimize GOT_PREL (already exists in toolchain/gcc/gcc-4.6)\nBackport from svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_6-mobile\nUNSPEC_GOT_PREL_SYM is now in new file arm/unspecs.md\n4.9 port is slightly different due to changes in gcc passes\nSee Google b/14811006\n\nr173209 | carrot | 2011-04-30 16:07:46 +0800 (Sat, 30 Apr 2011) | 21 lines\n\n\t* hooks.c (hook_rtx_void_null): New function.\n\t* hooks.h (hook_rtx_void_null): New prototype.\n\t* target.def (got_access): New hook vector declaration.\n\t* tree-pass.h (pass_simplify_got): New pass.\n\t* timevar.def (TV_SIMPLIFY_GOT): New TV id.\n\t* simplify-got.c: New source file.\n\t* Makefile.in (simplify-got.o): Add a new file.\n\t* passes.c (init_optimization_passes): Add a new pass.\n\t* config/arm/arm.c (arm_output_addr_const_extra): Output GOT_PREL\n\trelocation.\n\t(arm_get_pic_reg): New function.\n\t(arm_clear_pic_reg): New function.\n\t(arm_can_simplify_got_access): New function.\n\t(arm_loaded_global_var): New function.\n\t(arm_load_global_address): New function.\n\t* config/arm/arm.md (UNSPEC_GOT_PREL_SYM): New UNSPEC symbol.\n\n\t* testsuite/gcc.target/arm/got1.c: New testcase.\n\t* testsuite/gcc.target/arm/got2.c: New testcase.\n\nChange-Id: I91e881df19bb6937a5fbcc8e6b83d158717c7773\nSigned-off-by: Paul Beeler <pbeeler80@gmail.com>","distinct":true,"url":"https://api.github.com/repos/SaberMod/GCC_SaberMod/commits/fb33c4e2aef0c2816f8ac60070325bc15341dfaf"}]}