diff options
| author | Carrot Wei <carrot@google.com> | 2014-05-15 10:06:33 +0800 | 
|---|---|---|
| committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-05-15 15:59:04 +0800 | 
| commit | 331e362574142e4c1d9d509533d1c96b6dc54d13 (patch) | |
| tree | b078d9e04e3437c2d322b4d3406fedc973833440 /gcc-4.8/gcc/hooks.c | |
| parent | 5cd97bdbf2d97af4b0e4301f5f2b6c2a4301baf9 (diff) | |
| download | toolchain_gcc-331e362574142e4c1d9d509533d1c96b6dc54d13.zip toolchain_gcc-331e362574142e4c1d9d509533d1c96b6dc54d13.tar.gz toolchain_gcc-331e362574142e4c1d9d509533d1c96b6dc54d13.tar.bz2 | |
[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.
Change-Id: I91e881df19bb6937a5fbcc8e6b83d158717c7773
Diffstat (limited to 'gcc-4.8/gcc/hooks.c')
| -rw-r--r-- | gcc-4.8/gcc/hooks.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/gcc-4.8/gcc/hooks.c b/gcc-4.8/gcc/hooks.c index 3b54dfa..8194807 100644 --- a/gcc-4.8/gcc/hooks.c +++ b/gcc-4.8/gcc/hooks.c @@ -344,6 +344,13 @@ hook_rtx_tree_int_null (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)    return NULL;  } +/* Generic hook that returns NULL_RTX. */ +rtx +hook_rtx_void_null (void) +{ +  return NULL; +} +  /* Generic hook that takes three trees and returns the last one as is.  */  tree  hook_tree_tree_tree_tree_3rd_identity (tree a ATTRIBUTE_UNUSED, | 
