GCC Middle and Back End API Reference
trans-mem.h File Reference
This graph shows which files directly or indirectly include this file:

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)
 

Macro Definition Documentation

◆ PR_AWBARRIERSOMITTED

#define PR_AWBARRIERSOMITTED   0x0100

Referenced by dump_gimple_call().

◆ PR_DOESGOIRREVOCABLE

#define PR_DOESGOIRREVOCABLE   0x0040

◆ PR_EXCEPTIONBLOCK

#define PR_EXCEPTIONBLOCK   0x1000

Referenced by dump_gimple_call().

◆ PR_HASELSE

#define PR_HASELSE   0x2000

Referenced by dump_gimple_call().

◆ PR_HASNOABORT

#define PR_HASNOABORT   0x0008

◆ PR_HASNOIRREVOCABLE

#define PR_HASNOIRREVOCABLE   0x0020

◆ PR_HASNOSIMPLEREADS

#define PR_HASNOSIMPLEREADS   0x0080

Referenced by dump_gimple_call().

◆ PR_HASNOXMMUPDATE

#define PR_HASNOXMMUPDATE   0x0004

Referenced by dump_gimple_call().

◆ PR_INSTRUMENTEDCODE

#define PR_INSTRUMENTEDCODE   0x0001
Miscellaneous transactional memory support definitions.
Copyright (C) 2009-2024 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().

◆ PR_MULTIWAYCODE

#define PR_MULTIWAYCODE   (PR_INSTRUMENTEDCODE | PR_UNINSTRUMENTEDCODE)

◆ PR_PREFERUNINSTRUMENTED

#define PR_PREFERUNINSTRUMENTED   0x0800

Referenced by dump_gimple_call().

◆ PR_RARBARRIERSOMITTED

#define PR_RARBARRIERSOMITTED   0x0200

Referenced by dump_gimple_call().

◆ PR_READONLY

#define PR_READONLY   0x4000

◆ PR_UNDOLOGCODE

#define PR_UNDOLOGCODE   0x0400

Referenced by dump_gimple_call().

◆ PR_UNINSTRUMENTEDCODE

#define PR_UNINSTRUMENTEDCODE   0x0002

Function Documentation

◆ build_tm_abort_call()

tree build_tm_abort_call ( location_t loc,
bool is_outer )
extern
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(), ggc_alloc(), and integer_type_node.

◆ compute_transaction_bits()

void compute_transaction_bits ( void )
extern

◆ is_tm_ending()

bool is_tm_ending ( gimple * stmt)
extern
Return true if STMT is a built in function call that "ends" a
transaction.   

References ggc_alloc(), gimple_call_fndecl(), is_tm_ending_fndecl(), and NULL_TREE.

Referenced by merge_stmts_p().

◆ is_tm_ending_fndecl()

◆ is_tm_may_cancel_outer()

bool is_tm_may_cancel_outer ( tree x)
extern
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().

◆ is_tm_pure()

bool is_tm_pure ( const_tree x)
extern
Return true if X has been marked TM_PURE.   

References ECF_TM_PURE, flags_from_decl_or_type(), ggc_alloc(), TREE_CODE, TREE_TYPE, and TYPE_P.

Referenced by can_inline_edge_p(), ipa_tm_execute(), and is_tm_safe_or_pure().

◆ is_tm_safe()

◆ record_tm_replacement()

void record_tm_replacement ( tree from,
tree to )
extern

◆ tm_malloc_replacement()

void tm_malloc_replacement ( tree from)
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(), ggc_alloc(), IDENTIFIER_POINTER, record_tm_replacement(), TREE_CODE, and TREE_NOTHROW.