osprey-gcc-4.2.0/gcc/sched-deps.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "toplev.h"
#include "rtl.h"
#include "tm_p.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "function.h"
#include "flags.h"
#include "insn-config.h"
#include "insn-attr.h"
#include "except.h"
#include "recog.h"
#include "sched-int.h"
#include "params.h"
#include "cselib.h"
#include "df.h"

Include dependency graph for sched-deps.c:

Go to the source code of this file.

Enumerations

enum  reg_pending_barrier_mode {
  NOT_A_BARRIER = 0, MOVE_BARRIER, TRUE_BARRIER, NOT_A_BARRIER = 0,
  MOVE_BARRIER, TRUE_BARRIER
}

Functions/Subroutines

static int deps_may_trap_p (rtx)
static void add_dependence_list (rtx, rtx, int, enum reg_note)
static void add_dependence_list_and_free (rtx, rtx *, int, enum reg_note)
static void delete_all_dependences (rtx)
static void fixup_sched_groups (rtx)
static void flush_pending_lists (struct deps *, rtx, int, int)
static void sched_analyze_1 (struct deps *, rtx, rtx)
static void sched_analyze_2 (struct deps *, rtx, rtx)
static void sched_analyze_insn (struct deps *, rtx, rtx)
static rtx sched_get_condition (rtx)
static int conditions_mutex_p (rtx, rtx)
static enum DEPS_ADJUST_RESULT maybe_add_or_update_back_dep_1 (rtx, rtx, enum reg_note, ds_t, rtx, rtx, rtx **)
static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 (rtx, rtx, enum reg_note, ds_t, rtx, rtx, rtx **)
static void add_back_dep (rtx, rtx, enum reg_note, ds_t)
static void adjust_add_sorted_back_dep (rtx, rtx, rtx *)
static void adjust_back_add_forw_dep (rtx, rtx *)
static void delete_forw_dep (rtx, rtx)
static dw_t estimate_dep_weak (rtx, rtx)
rtx find_insn_list (rtx insn, rtx list)
bool sched_insns_conditions_mutex_p (rtx insn1, rtx insn2)
static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 (rtx insn, rtx elem, enum reg_note dep_type, ds_t ds ATTRIBUTE_UNUSED, rtx mem1 ATTRIBUTE_UNUSED, rtx mem2 ATTRIBUTE_UNUSED, rtx **changed_linkpp ATTRIBUTE_UNUSED)
static void add_insn_mem_dependence (struct deps *deps, rtx *insn_list, rtx *mem_list, rtx insn, rtx mem)
static void sched_analyze_reg (struct deps *deps, int regno, enum machine_mode mode, enum rtx_code ref, rtx insn)
void sched_analyze (struct deps *deps, rtx head, rtx tail)
void add_forw_dep (rtx to, rtx link)
void compute_forward_dependences (rtx head, rtx tail)
void init_deps (struct deps *deps)
void free_deps (struct deps *deps)
void init_dependency_caches (int luid)
void extend_dependency_caches (int n, bool create_p)
void free_dependency_caches (void)
void init_deps_global (void)
void finish_deps_global (void)
void add_dependence (rtx insn, rtx elem, enum reg_note dep_type)
enum DEPS_ADJUST_RESULT add_or_update_back_dep (rtx insn, rtx elem, enum reg_note dep_type, ds_t ds)
void add_or_update_back_forw_dep (rtx insn, rtx elem, enum reg_note dep_type, ds_t ds)
void add_back_forw_dep (rtx insn, rtx elem, enum reg_note dep_type, ds_t ds)
void delete_back_forw_dep (rtx insn, rtx elem)
dw_t get_dep_weak (ds_t ds, ds_t type)
ds_t set_dep_weak (ds_t ds, ds_t type, dw_t dw)
ds_t ds_merge (ds_t ds1, ds_t ds2)

Variables

static regset reg_pending_sets
static regset reg_pending_clobbers
static regset reg_pending_uses
static enum
reg_pending_barrier_mode 
reg_pending_barrier
static bitmap_headtrue_dependency_cache
static bitmap_headoutput_dependency_cache
static bitmap_headanti_dependency_cache
static bitmap_headspec_dependency_cache
static int cache_size


Enumeration Type Documentation

Enumerator:
NOT_A_BARRIER 
MOVE_BARRIER 
TRUE_BARRIER 
NOT_A_BARRIER 
MOVE_BARRIER 
TRUE_BARRIER 

Definition at line 55 of file sched-deps.c.


Function Documentation

static void add_back_dep ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t  ds 
) [static]

void add_back_forw_dep ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t  ds 
)

Definition at line 2026 of file sched-deps.c.

References add_back_dep(), adjust_back_add_forw_dep(), and LOG_LINKS.

void add_dependence ( rtx  insn,
rtx  elem,
enum reg_note  dep_type 
)

static void add_dependence_list ( rtx  insn,
rtx  list,
int  uncond,
enum reg_note  dep_type 
) [static]

Definition at line 570 of file sched-deps.c.

References add_dependence(), sched_insns_conditions_mutex_p(), and XEXP.

static void add_dependence_list_and_free ( rtx  insn,
rtx listp,
int  uncond,
enum reg_note  dep_type 
) [static]

void add_forw_dep ( rtx  to,
rtx  link 
)

static void add_insn_mem_dependence ( struct deps deps,
rtx insn_list,
rtx mem_list,
rtx  insn,
rtx  mem 
) [static]

enum DEPS_ADJUST_RESULT add_or_update_back_dep ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t  ds 
)

Definition at line 1996 of file sched-deps.c.

References add_or_update_back_dep_1().

Referenced by add_deps_for_risky_insns().

static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t ds  ATTRIBUTE_UNUSED,
rtx mem1  ATTRIBUTE_UNUSED,
rtx mem2  ATTRIBUTE_UNUSED,
rtx **changed_linkpp  ATTRIBUTE_UNUSED 
) [static]

static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 ( rtx  ,
rtx  ,
enum  reg_note,
ds_t  ,
rtx  ,
rtx  ,
rtx **   
) [static]

void add_or_update_back_forw_dep ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t  ds 
)

static void adjust_add_sorted_back_dep ( rtx  insn,
rtx  link,
rtx linkp 
) [static]

static void adjust_back_add_forw_dep ( rtx  insn,
rtx linkp 
) [static]

void compute_forward_dependences ( rtx  head,
rtx  tail 
)

static int conditions_mutex_p ( rtx  cond1,
rtx  cond2 
) [static]

Definition at line 191 of file sched-deps.c.

References COMPARISON_P, GET_CODE, NULL, reversed_comparison_code(), and XEXP.

static void delete_all_dependences ( rtx  insn  )  [static]

void delete_back_forw_dep ( rtx  insn,
rtx  elem 
)

static void delete_forw_dep ( rtx  insn,
rtx  elem 
) [static]

static int deps_may_trap_p ( rtx  mem  )  [static]

ds_t ds_merge ( ds_t  ds1,
ds_t  ds2 
)

static dw_t estimate_dep_weak ( rtx  mem1,
rtx  mem2 
) [static]

Definition at line 1946 of file sched-deps.c.

References MIN_DEP_WEAK, NO_DEP_WEAK, REG_P, REGNO, UNCERTAIN_DEP_WEAK, and XEXP.

Referenced by add_or_update_back_dep_1().

void extend_dependency_caches ( int  n,
bool  create_p 
)

rtx find_insn_list ( rtx  insn,
rtx  list 
)

Definition at line 141 of file sched-deps.c.

References XEXP.

void finish_deps_global ( void   ) 

Definition at line 1875 of file sched-deps.c.

References FREE_REG_SET, reg_pending_clobbers, reg_pending_sets, and reg_pending_uses.

static void fixup_sched_groups ( rtx  insn  )  [static]

static void flush_pending_lists ( struct deps deps,
rtx  insn,
int  for_read,
int  for_write 
) [static]

void free_dependency_caches ( void   ) 

void free_deps ( struct deps deps  ) 

dw_t get_dep_weak ( ds_t  ds,
ds_t  type 
)

void init_dependency_caches ( int  luid  ) 

void init_deps ( struct deps deps  ) 

void init_deps_global ( void   ) 

static enum DEPS_ADJUST_RESULT maybe_add_or_update_back_dep_1 ( rtx  insn,
rtx  elem,
enum reg_note  dep_type,
ds_t  ds,
rtx  mem1,
rtx  mem2,
rtx **  changed_linkpp 
) [static]

void sched_analyze ( struct deps deps,
rtx  head,
rtx  tail 
)

static void sched_analyze_1 ( struct deps deps,
rtx  x,
rtx  insn 
) [static]

static void sched_analyze_2 ( struct deps deps,
rtx  x,
rtx  insn 
) [static]

static void sched_analyze_insn ( struct deps deps,
rtx  x,
rtx  insn 
) [static]

static void sched_analyze_reg ( struct deps deps,
int  regno,
enum machine_mode  mode,
enum rtx_code  ref,
rtx  insn 
) [static]

static rtx sched_get_condition ( rtx  insn  )  [static]

bool sched_insns_conditions_mutex_p ( rtx  insn1,
rtx  insn2 
)

ds_t set_dep_weak ( ds_t  ds,
ds_t  type,
dw_t  dw 
)


Variable Documentation

Definition at line 79 of file sched-deps.c.

int cache_size [static]

Definition at line 81 of file sched-deps.c.

Definition at line 78 of file sched-deps.c.

Definition at line 62 of file sched-deps.c.

Definition at line 49 of file sched-deps.c.

Definition at line 48 of file sched-deps.c.

Definition at line 50 of file sched-deps.c.

Definition at line 77 of file sched-deps.c.


Generated on Wed Apr 8 15:44:33 2009 for Open64 by  doxygen 1.5.6