comparison gcc/calls.c~ @ 83:6fb1a677d0b5

modify expand_call
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Fri, 11 Nov 2011 04:29:33 +0900
parents 895e19fe9c22
children 12b3180c7d07
comparison
equal deleted inserted replaced
82:895e19fe9c22 83:6fb1a677d0b5
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 2338 #ifndef noCbC
2339 || (!targetm.function_ok_for_sibcall (fndecl, exp) 2339 || (!targetm.function_ok_for_sibcall (fndecl, exp)
2340 && !CbC_IS_CODE_SEGMENT (TREE_TYPE (fndecl))) 2340 && (!fndecl || !CbC_IS_CODE_SEGMENT (TREE_TYPE (fndecl))))
2341 #else 2341 #else
2342 || !targetm.function_ok_for_sibcall (fndecl, exp) 2342 || !targetm.function_ok_for_sibcall (fndecl, exp)
2343 #endif 2343 #endif
2344 /* Functions that do not return exactly once may not be sibcall 2344 /* Functions that do not return exactly once may not be sibcall
2345 optimized. */ 2345 optimized. */
2366 2366
2367 2367
2368 /* Check if caller and callee disagree in promotion of function 2368 /* Check if caller and callee disagree in promotion of function
2369 return value. */ 2369 return value. */
2370 #ifndef noCbC 2370 #ifndef noCbC
2371 if(0) 2371 if (try_tail_call && (!fndecl || !CbC_IS_CODE_SEGMENT (TREE_TYPE (fndecl))))
2372 #else 2372 #else
2373 if (try_tail_call) 2373 if (try_tail_call)
2374 #endif 2374 #endif
2375 { 2375 {
2376 enum machine_mode caller_mode, caller_promoted_mode; 2376 enum machine_mode caller_mode, caller_promoted_mode;
2377 enum machine_mode callee_mode, callee_promoted_mode; 2377 enum machine_mode callee_mode, callee_promoted_mode;
2378 int caller_unsignedp, callee_unsignedp; 2378 int caller_unsignedp, callee_unsignedp;