On 09/15/14 03:51, Ilya Enkovich wrote:
2014-08-15 Ilya Enkovich <ilya.enkov...@intel.com>
* ipa-split.c: Include tree-chkp.h.
(find_retbnd): New.
(consider_split): Do not split retbnd and retval
producers.
(split_function): Propagate Pointer Bounds Checker
instrumentation marks and handle returned bounds.
I don't think it's sufficient to just look at the SSA_NAME_DEFSTMT and
verify that it's not in the header.
You could easily have the SSA_NAME_DEF_STMT be a PHI which is in the same
partition as the RETURN statement. One of the PHI arguments might be fed
from a statement in the header, right?
Don't you have to look at the entire set of definitions which directly and
indirectly feed the return statement and verify that each and every one is
in the same partition as the return statement?
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.
jeff