comparison gcc/calls.c @ 97:4d6300120c29 cbc-gcc-4.6.0

modify condition of tail call in expand_call method
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Fri, 20 Jan 2012 04:48:59 +0900
parents 506ac5e3963a
children ab0bcb71f44d
comparison
equal deleted inserted replaced
96:506ac5e3963a 97:4d6300120c29
2333 != OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl))) 2333 != OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl)))
2334 || (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl)) 2334 || (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl))
2335 #endif 2335 #endif
2336 /* Check whether the target is able to optimize the call 2336 /* Check whether the target is able to optimize the call
2337 into a sibcall. */ 2337 into a sibcall. */
2338 #ifndef noCbC
2339 || (!targetm.function_ok_for_sibcall (fndecl, exp)
2340 && (!fndecl || !CbC_IS_CODE_SEGMENT (TREE_TYPE (fndecl))))
2341 #else
2342 || !targetm.function_ok_for_sibcall (fndecl, exp) 2338 || !targetm.function_ok_for_sibcall (fndecl, exp)
2343 #endif
2344 /* Functions that do not return exactly once may not be sibcall 2339 /* Functions that do not return exactly once may not be sibcall
2345 optimized. */ 2340 optimized. */
2346 || (flags & (ECF_RETURNS_TWICE | ECF_NORETURN)) 2341 || (flags & (ECF_RETURNS_TWICE | ECF_NORETURN))
2347 || TYPE_VOLATILE (TREE_TYPE (TREE_TYPE (addr))) 2342 || TYPE_VOLATILE (TREE_TYPE (TREE_TYPE (addr)))
2348 /* If the called function is nested in the current one, it might access 2343 /* If the called function is nested in the current one, it might access