On 10/02/14 08:03, Ilya Enkovich wrote:

Here is an updated version.

Thanks,
Ilya
--
2014-10-02  Ilya Enkovich  <ilya.enkov...@intel.com>

        * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
        (arg_data): Add fields special_slot, pointer_arg and
        pointer_offset.
        (store_bounds): New.
        (emit_call_1): Propagate instrumentation flag for CALL.
        (initialize_argument_information): Compute pointer_arg,
        pointer_offset and special_slot for pointer bounds arguments.
        (finalize_must_preallocate): Preallocate when storing bounds
        in bounds table.
        (compute_argument_addresses): Skip pointer bounds.
        (expand_call): Store bounds into tables separately.  Return
        result joined with resulting bounds.
        * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
        (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
        (expand_return): Add returned bounds arg.  Handle returned bounds.
        (expand_gimple_stmt_1): Adjust to new expand_return signature.
        (gimple_expand_cfg): Reset rtx bounds map.
        * expr.c: Include tree-chkp.h, rtl-chkp.h.
        (expand_assignment): Handle returned bounds.
        (store_expr_with_bounds): New.  Replaces store_expr with new bounds
        target argument.  Handle bounds returned by calls.
        (store_expr): Now wraps store_expr_with_bounds.
        * expr.h (store_expr_with_bounds): New.
        * function.c: Include tree-chkp.h, rtl-chkp.h.
        (bounds_parm_data): New.
        (use_register_for_decl): Do not registerize decls used for bounds
        stores and loads.
        (assign_parms_augmented_arg_list): Add bounds of the result
        structure pointer as the second argument.
        (assign_parm_find_entry_rtl): Mark bounds are never passed on
        the stack.
        (assign_parm_is_stack_parm): Likewise.
        (assign_parm_load_bounds): New.
        (assign_bounds): New.
        (assign_parms): Load bounds and determine a location for
        returned bounds.
        (diddle_return_value_1): New.
        (diddle_return_value): Handle returned bounds.
        * function.h (rtl_data): Add field for returned bounds.
        * target.def (TARGET_FUNCTION_ARG): Update hook description with new
        possible return value CONST_INT.
        * doc/tm.texi: Regenerate.


OK  Thanks for your patience with my questions/concerns.

jeff

Reply via email to