This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 09/15/14 10:20, Ilya Enkovich wrote:
I must be misunderstanding something then. I fundamentally don't see how the return bounds are any different here than the return value. If we have exposed the bounds in the IL, then aren't they going to be handled just like any other object in the IL?A problem I'm trying to avoid is that bounds in return statement are not taken into account when checking for data dependencies between parts. It means we may have a case when return statement with bounds is put into split part but bounds producer is not. If SSA_NAME_DEFSTMT for returned bounds is in the same partition as a return then I do not think I should care about the rest of definitions chain because regular split point checks should make sure we have everything required.Is the data dependency in the gimple IL? If so there shouldn't be anything particularly special we need to do. If not, then how ugly would it be to "use" the bounds at the return statement to expose the missing dependency? Not asking you to make that change, just want to make sure that I understand the core issue and that if something is missing from a dependency standpoint that we consider what it would take to expose the missing dependency.Gimple IL has required data dependencies to handle returns properly. But split pass handles return basic block in a special way. Return basic block has to have a simple form and is not scanned using stmt walkers as it is done for all other BBs by visit_bb. It is assumed that all dependencies for return BB are PHI args and returned value. Thus returned bounds are just not taken into account. That's how I see the problem.
Maybe you should post the IL for a case where this all matters and walk me through the key issues.
jeff
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |