GCC Middle and Back End API Reference
|
Go to the source code of this file.
Macros | |
#define | PR_INSTRUMENTEDCODE 0x0001 |
#define | PR_UNINSTRUMENTEDCODE 0x0002 |
#define | PR_MULTIWAYCODE (PR_INSTRUMENTEDCODE | PR_UNINSTRUMENTEDCODE) |
#define | PR_HASNOXMMUPDATE 0x0004 |
#define | PR_HASNOABORT 0x0008 |
#define | PR_HASNOIRREVOCABLE 0x0020 |
#define | PR_DOESGOIRREVOCABLE 0x0040 |
#define | PR_HASNOSIMPLEREADS 0x0080 |
#define | PR_AWBARRIERSOMITTED 0x0100 |
#define | PR_RARBARRIERSOMITTED 0x0200 |
#define | PR_UNDOLOGCODE 0x0400 |
#define | PR_PREFERUNINSTRUMENTED 0x0800 |
#define | PR_EXCEPTIONBLOCK 0x1000 |
#define | PR_HASELSE 0x2000 |
#define | PR_READONLY 0x4000 |
Functions | |
void | compute_transaction_bits (void) |
bool | is_tm_ending (gimple *) |
tree | build_tm_abort_call (location_t, bool) |
bool | is_tm_safe (const_tree) |
bool | is_tm_pure (const_tree) |
bool | is_tm_may_cancel_outer (tree) |
bool | is_tm_ending_fndecl (tree) |
void | record_tm_replacement (tree, tree) |
void | tm_malloc_replacement (tree) |
#define PR_AWBARRIERSOMITTED 0x0100 |
Referenced by dump_gimple_call().
#define PR_DOESGOIRREVOCABLE 0x0040 |
Referenced by dump_gimple_call(), and expand_transaction().
#define PR_EXCEPTIONBLOCK 0x1000 |
Referenced by dump_gimple_call().
#define PR_HASELSE 0x2000 |
Referenced by dump_gimple_call().
#define PR_HASNOABORT 0x0008 |
Referenced by dump_gimple_call(), and expand_transaction().
#define PR_HASNOIRREVOCABLE 0x0020 |
Referenced by dump_gimple_call(), and expand_transaction().
#define PR_HASNOSIMPLEREADS 0x0080 |
Referenced by dump_gimple_call().
#define PR_HASNOXMMUPDATE 0x0004 |
Referenced by dump_gimple_call().
#define PR_INSTRUMENTEDCODE 0x0001 |
Miscellaneous transactional memory support definitions. Copyright (C) 2009-2025 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@redhat.com> and Aldy Hernandez <aldyh@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
These defines must match the enumerations in libitm.h.
Referenced by dump_gimple_call(), and expand_transaction().
#define PR_MULTIWAYCODE (PR_INSTRUMENTEDCODE | PR_UNINSTRUMENTEDCODE) |
#define PR_PREFERUNINSTRUMENTED 0x0800 |
Referenced by dump_gimple_call().
#define PR_RARBARRIERSOMITTED 0x0200 |
Referenced by dump_gimple_call().
#define PR_READONLY 0x4000 |
Referenced by dump_gimple_call(), and expand_transaction().
#define PR_UNDOLOGCODE 0x0400 |
Referenced by dump_gimple_call().
#define PR_UNINSTRUMENTEDCODE 0x0002 |
Referenced by dump_gimple_call(), and expand_transaction().
Build a GENERIC tree for a user abort. This is called by front ends while transforming the __tm_abort statement.
References AR_OUTERABORT, AR_USERABORT, build_call_expr_loc(), build_int_cst(), builtin_decl_explicit(), and integer_type_node.
|
extern |
Set the IN_TRANSACTION for all gimple statements that appear in a transaction.
References all_tm_regions, bitmap_obstack_release(), cfun, tm_region::entry_block, tm_region::exit_blocks, basic_block_def::flags, FOR_EACH_BB_FN, gate_tm_init(), get_tm_region_blocks(), i, tm_region::irr_blocks, tm_region::next, NULL, queue, and tm_obstack.
Referenced by tree_ssa_lim_initialize().
Return true if STMT is a built in function call that "ends" a transaction.
References gimple_call_fndecl(), is_tm_ending_fndecl(), and NULL_TREE.
Referenced by merge_stmts_p().
Return true for built in functions that "end" a transaction.
References BUILT_IN_NORMAL, DECL_BUILT_IN_CLASS, and DECL_FUNCTION_CODE().
Referenced by expand_call_tm(), gimple_call_initialize_ctrl_altering(), ipa_tm_decrement_clone_counts(), ipa_tm_diagnose_transaction(), ipa_tm_scan_calls_block(), ipa_tm_scan_irr_block(), and is_tm_ending().
Return true if X has been marked TRANSACTION_MAY_CANCEL_OUTER.
References get_attrs_for(), lookup_attribute(), and NULL.
Referenced by diagnose_tm_1(), and diagnose_tm_blocks().
|
extern |
Return true if X has been marked TM_PURE.
References ECF_TM_PURE, flags_from_decl_or_type(), TREE_CODE, TREE_TYPE, and TYPE_P.
Referenced by can_inline_edge_p(), ipa_tm_execute(), and is_tm_safe_or_pure().
|
extern |
Return true if X has been marked TM_SAFE.
References get_attrs_for(), and lookup_attribute().
Referenced by diagnose_tm_blocks(), expand_call_tm(), ipa_tm_execute(), ipa_tm_insert_gettmclone_call(), ipa_tm_mayenterirr_function(), ipa_tm_scan_irr_block(), and is_tm_safe_or_pure().
References hash_table< Descriptor, Lazy, Allocator >::create_ggc(), DECL_UNINLINABLE, ggc_alloc(), NULL, and tm_wrap_map.
Referenced by tm_malloc_replacement().
|
extern |
When appropriate, record TM replacement for memory allocation functions. FROM is the FNDECL to wrap.
References builtin_decl_explicit(), DECL_NAME, find_tm_replacement_function(), IDENTIFIER_POINTER, record_tm_replacement(), TREE_CODE, and TREE_NOTHROW.