Mercurial > hg > CbC > CbC_gcc
diff gcc/calls.c @ 116:367f9f4f266e
fix gimple.h
author | mir3636 |
---|---|
date | Tue, 28 Nov 2017 20:22:01 +0900 |
parents | ab0bcb71f44d |
children | f81c5aa9f14f |
line wrap: on
line diff
--- a/gcc/calls.c Tue Nov 28 19:31:15 2017 +0900 +++ b/gcc/calls.c Tue Nov 28 20:22:01 2017 +0900 @@ -2759,7 +2759,7 @@ } #ifndef noCbC -#include "cbc-tree.h" +#include "c/cbc-tree.h" #endif /* If X is a likely-spilled register value, copy it to a pseudo @@ -3315,7 +3315,6 @@ try_tail_call = 1; /* Rest of purposes for tail call optimizations to fail. */ -<<<<<<< local if (try_tail_call) try_tail_call = can_implement_as_sibling_call_p (exp, structure_value_addr, @@ -3323,52 +3322,6 @@ reg_parm_stack_space, fndecl, flags, addr, args_size); -======= - if ( -#ifdef HAVE_sibcall_epilogue - !HAVE_sibcall_epilogue -#else - 1 -#endif - || !try_tail_call - /* Doing sibling call optimization needs some work, since - structure_value_addr can be allocated on the stack. - It does not seem worth the effort since few optimizable - sibling calls will return a structure. */ - || structure_value_addr != NULL_RTX -#ifdef REG_PARM_STACK_SPACE - /* If outgoing reg parm stack space changes, we can not do sibcall. */ - || (OUTGOING_REG_PARM_STACK_SPACE (funtype) - != OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl))) - || (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl)) -#endif - /* Check whether the target is able to optimize the call - into a sibcall. */ - || !targetm.function_ok_for_sibcall (fndecl, exp) - /* Functions that do not return exactly once may not be sibcall - optimized. */ - || (flags & (ECF_RETURNS_TWICE | ECF_NORETURN)) - || TYPE_VOLATILE (TREE_TYPE (TREE_TYPE (addr))) - /* If the called function is nested in the current one, it might access - some of the caller's arguments, but could clobber them beforehand if - the argument areas are shared. */ - || (fndecl && decl_function_context (fndecl) == current_function_decl) - /* If this function requires more stack slots than the current - function, we cannot change it into a sibling call. - crtl->args.pretend_args_size is not part of the - stack allocated by our caller. */ - || args_size.constant > (crtl->args.size - - crtl->args.pretend_args_size) - /* If the callee pops its own arguments, then it must pop exactly - the same number of arguments as the current function. */ - || (targetm.calls.return_pops_args (fndecl, funtype, args_size.constant) - != targetm.calls.return_pops_args (current_function_decl, - TREE_TYPE (current_function_decl), - crtl->args.size)) - || !lang_hooks.decls.ok_for_sibcall (fndecl)) - try_tail_call = 0; ->>>>>>> other - /* Check if caller and callee disagree in promotion of function return value. */