Mercurial > hg > CbC > CbC_gcc
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; |