+2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org>
+
+ * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
+ function.c, graphite-scop-detection.c, haifa-sched.c,
+ ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
+ tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
+ varasm.c: Remove typedefs of structs.
+
2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
* config/rs6000/altivec.h (vec_adde): New define.
user->other_use_this_block = 1;
}
-typedef struct {
+struct defs_uses_info {
btr_user users_this_bb;
HARD_REG_SET btrs_written_in_block;
HARD_REG_SET btrs_live_in_block;
sbitmap bb_gen;
sbitmap *btr_defset;
-} defs_uses_info;
+};
/* Called via note_stores or directly to register stores into /
clobbers of a branch target register DEST that are not recognized as
/* Section names are stored as reference counted strings in GGC safe hashtable
(to make them survive through PCH). */
-struct GTY((for_user)) section_hash_entry_d
+struct GTY((for_user)) section_hash_entry
{
int ref_count;
char *name; /* As long as this datastructure stays in GGC, we can not put
way */
};
-typedef struct section_hash_entry_d section_hash_entry;
-
struct section_name_hasher : ggc_ptr_hash<section_hash_entry>
{
typedef const char *compare_type;
ate_kind_label
};
-typedef struct GTY((for_user)) addr_table_entry_struct {
+struct GTY((for_user)) addr_table_entry {
enum ate_kind kind;
unsigned int refcount;
unsigned int index;
char * GTY ((tag ("1"))) label;
}
GTY ((desc ("%1.kind"))) addr;
-}
-addr_table_entry;
+};
/* Location lists are ranges + location descriptions for that range,
so you can track variables that are in different places over
unsigned elt_size;
};
-struct addr_table_entry_struct;
+struct addr_table_entry;
/* The dw_val_node describes an attribute's value, as it is
represented internally. */
struct GTY(()) dw_val_node {
enum dw_val_class val_class;
- struct addr_table_entry_struct * GTY(()) val_entry;
+ struct addr_table_entry * GTY(()) val_entry;
union dw_val_struct_union
{
rtx GTY ((tag ("dw_val_class_addr"))) val_addr;
/* Structure recording the mapping from source file and directory
names at compile time to those to be embedded in debug
information. */
-typedef struct debug_prefix_map
+struct debug_prefix_map
{
const char *old_prefix;
const char *new_prefix;
size_t old_len;
size_t new_len;
struct debug_prefix_map *next;
-} debug_prefix_map;
+};
/* Linked list of such structures. */
static debug_prefix_map *debug_prefix_maps;
/* Private type used by get_hard_reg_initial_reg, get_hard_reg_initial_val,
and has_hard_reg_initial_val.. */
-typedef struct GTY(()) initial_value_pair {
+struct GTY(()) initial_value_pair {
rtx hard_reg;
rtx pseudo;
-} initial_value_pair;
+};
/* ??? This could be a VEC but there is currently no way to define an
opaque VEC type. This could be worked around by defining struct
initial_value_pair in function.h. */
-typedef struct GTY(()) initial_value_struct {
+struct GTY(()) initial_value_struct {
int num_entries;
int max_entries;
initial_value_pair * GTY ((length ("%h.num_entries"))) entries;
-} initial_value_struct;
+};
/* If a pseudo represents an initial hard reg (or expression), return
it, else return NULL_RTX. */
/* The type of the analyzed basic block. */
-typedef enum gbb_type {
+enum gbb_type {
GBB_UNKNOWN,
GBB_LOOP_SING_EXIT_HEADER,
GBB_LOOP_MULT_EXIT_HEADER,
GBB_COND_HEADER,
GBB_SIMPLE,
GBB_LAST
-} gbb_type;
+};
/* Detect the type of BB. Loop headers are only marked, if they are
new. This means their loop_father is different to LAST_LOOP.
9 <- exit */
-typedef struct sd_region_p
+struct sd_region
{
/* The entry bb dominates all bbs in the sd_region. It is part of
the region. */
/* The exit bb postdominates all bbs in the sd_region, but is not
part of the region. */
basic_block exit;
-} sd_region;
+};
"RFS_DEP_COUNT", "RFS_TIE", "RFS_FUSION" };
/* Statistical breakdown of rank_for_schedule decisions. */
-typedef struct { unsigned stats[RFS_N]; } rank_for_schedule_stats_t;
+struct rank_for_schedule_stats_t { unsigned stats[RFS_N]; };
static rank_for_schedule_stats_t rank_for_schedule_stats;
/* Return the result of comparing insns TMP and TMP2 and update
#include "lto-streamer.h"
/* Hash based set of pairs of types. */
-typedef struct
+struct type_pair
{
tree first;
tree second;
-} type_pair;
+};
template <>
struct default_hash_traits <type_pair> : typed_noop_remove <type_pair>
/* Per basic block info. */
-typedef struct
+struct split_bb_info
{
unsigned int size;
unsigned int time;
-} split_bb_info;
+};
static vec<split_bb_info> bb_info_vec;
/* Stack entry for recursive DFS walk in find_split_point. */
-typedef struct
+struct stack_entry
{
/* Basic block we are examining. */
basic_block bb;
/* When false we can not split on this BB. */
bool can_split;
-} stack_entry;
+};
/* Find all articulations and call consider_split on them.
\f
/* Static data for the next two routines. */
-typedef struct change_t
+struct change_t
{
rtx object;
int old_code;
rtx *loc;
rtx old;
bool unshare;
-} change_t;
+};
static change_t *changes;
static int changes_allocated;
/* This structure represents a candidate for elimination. */
-typedef struct ext_cand
+struct ext_cand
{
/* The expression. */
const_rtx expr;
/* The instruction where it lives. */
rtx_insn *insn;
-} ext_cand;
+};
static int max_insn_uid;
};
/* Vectors used by combine_reaching_defs and its helpers. */
-typedef struct ext_state
+struct ext_state
{
/* In order to avoid constant alloc/free, we keep these
4 vectors live through the entire find_and_remove_re and just
the original mode from which the insn is extending and
kind of extension. */
struct ext_modified *modified;
-} ext_state;
+};
/* Reaching Definitions of the extended register could be conditional copies
or regular definitions. This function separates the two types into two
int subtree_prob;
};
-typedef struct case_node case_node;
typedef struct case_node *case_node_ptr;
extern basic_block label_to_block_fn (struct function *, tree);
/* Describes a location of a memory reference. */
-typedef struct data_ref_loc_d
+struct data_ref_loc
{
/* The memory reference. */
tree ref;
/* True if the memory reference is read. */
bool is_read;
-} data_ref_loc;
+};
/* Stores the locations of memory references in STMT to REFERENCES. Returns
/* Structure for recording known values of a conditional expression
at the exits from its block. */
-typedef struct cond_equivalence_s
+struct cond_equivalence
{
struct hashable_expr cond;
tree value;
-} cond_equivalence;
+};
/* Structure for recording edge equivalences as well as any pending
};
/* Cost of a computation. */
-typedef struct
+struct comp_cost
{
int cost; /* The runtime cost. */
unsigned complexity; /* The estimate of the complexity of the code for
the computation (in no concrete units --
complexity field should be larger for more
complex expressions and addressing modes). */
-} comp_cost;
+};
static const comp_cost no_cost = {0, 0};
static const comp_cost infinite_cost = {INFTY, INFTY};
/* output_constructor outer state of relevance in recursive calls, typically
for nested aggregate bitfields. */
-typedef struct {
+struct oc_outer_state {
unsigned int bit_offset; /* current position in ... */
int byte; /* ... the outer byte buffer. */
-} oc_outer_state;
+};
static unsigned HOST_WIDE_INT
output_constructor (tree, unsigned HOST_WIDE_INT, unsigned int,
/* output_constructor local state to support interaction with helpers. */
-typedef struct {
+struct oc_local_state {
/* Received arguments. */
tree exp; /* Constructor expression. */
tree val; /* Current element value. */
tree index; /* Current element index. */
-} oc_local_state;
+};
/* Helper for output_constructor. From the current LOCAL state, output a
RANGE_EXPR element. */
return NULL_TREE;
}
-typedef struct tm_alias_pair
+struct tm_alias_pair
{
unsigned int uid;
tree from;
tree to;
-} tm_alias_pair;
+};
/* Dump the actual pairs to the .tm_clone_table section. */