r212176 - in /branches/google/gcc-4_9/gcc: Make...

xur@gcc.gnu.org xur@gcc.gnu.org
Mon Jun 30 20:23:00 GMT 2014


Author: xur
Date: Mon Jun 30 20:23:15 2014
New Revision: 212176

URL: https://gcc.gnu.org/viewcvs?rev=212176&root=gcc&view=rev
Log:
2014-06-30  Rong Xu  <xur@google.com>

Port commit 331e362574142e4c1d9d509533d1c96b6dc54d13 from Andoird branch.
This is a local patch.

Author: Carrot Wei <carrot@google.com>
Date:   Thu May 15 10:06:33 2014 +0800

    [4.8, 4.9] Add simplify-got
    
    This pass optimize GOT_PREL (already exists in toolchain/gcc/gcc-4.6)
    Backport from svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_6-mobile
    UNSPEC_GOT_PREL_SYM is now in new file arm/unspecs.md
    4.9 port is slightly different due to changes in gcc passes
    See Google b/14811006
    
    r173209 | carrot | 2011-04-30 16:07:46 +0800 (Sat, 30 Apr 2011) | 21 lines
    
    	* hooks.c (hook_rtx_void_null): New function.
    	* hooks.h (hook_rtx_void_null): New prototype.
    	* target.def (got_access): New hook vector declaration.
    	* tree-pass.h (pass_simplify_got): New pass.
    	* timevar.def (TV_SIMPLIFY_GOT): New TV id.
    	* simplify-got.c: New source file.
    	* Makefile.in (simplify-got.o): Add a new file.
    	* passes.c (init_optimization_passes): Add a new pass.
    	* config/arm/arm.c (arm_output_addr_const_extra): Output GOT_PREL
    	relocation.
    	(arm_get_pic_reg): New function.
    	(arm_clear_pic_reg): New function.
    	(arm_can_simplify_got_access): New function.
    	(arm_loaded_global_var): New function.
    	(arm_load_global_address): New function.
    	* config/arm/arm.md (UNSPEC_GOT_PREL_SYM): New UNSPEC symbol.
    
    	* testsuite/gcc.target/arm/got1.c: New testcase.
    	* testsuite/gcc.target/arm/got2.c: New testcase.

Modified:
    branches/google/gcc-4_9/gcc/Makefile.in
    branches/google/gcc-4_9/gcc/config/arm/arm.c
    branches/google/gcc-4_9/gcc/config/arm/unspecs.md
    branches/google/gcc-4_9/gcc/doc/tm.texi
    branches/google/gcc-4_9/gcc/doc/tm.texi.in
    branches/google/gcc-4_9/gcc/hooks.c
    branches/google/gcc-4_9/gcc/hooks.h
    branches/google/gcc-4_9/gcc/passes.def
    branches/google/gcc-4_9/gcc/target.def
    branches/google/gcc-4_9/gcc/timevar.def
    branches/google/gcc-4_9/gcc/tree-pass.h



More information about the Gcc-cvs mailing list