1 2014-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
3 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
5 (cgraph_node): Add instrumented_version, orig_decl and
6 instrumentation_clone fields.
7 (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8 * cgraph.c (cgraph_node::remove): Fix instrumented_version
9 of the referenced node if any.
10 (cgraph_node::dump): Dump instrumentation_clone and
11 instrumented_version fields.
12 (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
13 references and instrumentation thunks.
14 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
16 (cgraph_rebuild_references): Likewise.
17 * cgraphunit.c (assemble_thunks_and_aliases): Skip thunks
18 calling instrumneted function version.
19 * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
20 (ipa_ref): increase size of use field.
21 * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
22 * lto-cgraph.c (lto_output_node): Output instrumentation_clone,
23 thunk.add_pointer_bounds_args and orig_decl field.
24 (lto_output_ref): Adjust to new ipa_ref::use field size.
25 (input_overwrite_node): Read instrumentation_clone field.
26 (input_node): Read thunk.add_pointer_bounds_args and orig_decl
28 (input_ref): Adjust to new ipa_ref::use field size.
29 (input_cgraph_1): Compute instrumented_version fields and restore
30 IDENTIFIER_TRANSPARENT_ALIAS chains.
31 * lto-streamer.h (LTO_minor_version): Change minor version from
33 * ipa.c (symtab_remove_unreachable_nodes): Consider instrumented
34 clone as address taken if the original one is address taken.
35 * ipa-visibility.c (cgraph_externally_visible_p): Mark
36 instrumented 'main' as externally visible.
37 (function_and_variable_visibility): Filter instrumentation