GCC Middle and Back End API Reference
log_entry_hasher Struct Reference

Public Types

typedef tm_log_entry value_type
typedef tm_log_entry compare_type

Static Public Member Functions

static hashval_t hash (const value_type *)
static bool equal (const value_type *, const compare_type *)
static void remove (value_type *)

Detailed Description

Log entry hashtable helpers.


Member Typedef Documentation


Member Function Documentation

bool log_entry_hasher::equal ( const value_type log1,
const compare_type log2 
)
inlinestatic

Htab support. Return true if two log entries are the same.

FIXME:

rth: I suggest that we get rid of the component refs etc. I.e. resolve the reference to base + offset.

We may need to actually finish a merge with mainline for this, since we'd like to be presented with Richi's MEM_REF_EXPRs more often than not. But in the meantime your tm_log_entry could save the results of get_inner_reference.

See: g++.dg/tm/pr46653.C

 Special case plain equality because operand_equal_p() below will
 return FALSE if the addresses are equal but they have
 side-effects (e.g. a volatile address).   

References tm_new_mem_map::local_new_memory, and tm_new_mem_map::val.

hashval_t log_entry_hasher::hash ( const value_type log)
inlinestatic

Htab support. Return hash value for a `tm_log_entry'.

References mem_max, mem_non_local, mem_thread_local, and mem_transaction_local.

void log_entry_hasher::remove ( value_type lp)
inlinestatic

Htab support. Free one tm_log_entry.


The documentation for this struct was generated from the following file: