Print this page
new smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/flow.h
          +++ new/usr/src/tools/smatch/src/flow.h
   1    1  #ifndef FLOW_H
   2    2  #define FLOW_H
   3    3  
   4    4  #include "lib.h"
   5    5  
   6    6  extern unsigned long bb_generation;
   7    7  
   8      -#define REPEAT_CSE              1
   9      -#define REPEAT_SYMBOL_CLEANUP   2
  10      -#define REPEAT_CFG_CLEANUP      3
        8 +#define REPEAT_CSE              (1 << 0)
        9 +#define REPEAT_SYMBOL_CLEANUP   (1 << 1)
       10 +#define REPEAT_CFG_CLEANUP      (1 << 2)
  11   11  
  12   12  struct entrypoint;
  13   13  struct instruction;
  14   14  
  15   15  extern int simplify_flow(struct entrypoint *ep);
  16   16  
       17 +extern void kill_dead_stores(struct entrypoint *ep, pseudo_t addr, int local);
  17   18  extern void simplify_symbol_usage(struct entrypoint *ep);
  18   19  extern void simplify_memops(struct entrypoint *ep);
  19   20  extern void pack_basic_blocks(struct entrypoint *ep);
  20   21  
  21   22  extern void convert_instruction_target(struct instruction *insn, pseudo_t src);
  22      -extern void cleanup_and_cse(struct entrypoint *ep);
       23 +extern void remove_dead_insns(struct entrypoint *);
  23   24  extern int simplify_instruction(struct instruction *);
  24   25  
  25   26  extern void kill_bb(struct basic_block *);
  26   27  extern void kill_use(pseudo_t *);
       28 +extern void remove_use(pseudo_t *);
  27   29  extern void kill_unreachable_bbs(struct entrypoint *ep);
  28   30  
  29      -extern void kill_insn(struct instruction *, int force);
  30      -static inline void kill_instruction(struct instruction *insn)
       31 +extern int kill_insn(struct instruction *, int force);
       32 +static inline int kill_instruction(struct instruction *insn)
  31   33  {
  32      -        kill_insn(insn, 0);
       34 +        return kill_insn(insn, 0);
  33   35  }
  34      -static inline void kill_instruction_force(struct instruction *insn)
       36 +static inline int kill_instruction_force(struct instruction *insn)
  35   37  {
  36      -        kill_insn(insn, 1);
       38 +        return kill_insn(insn, 1);
  37   39  }
  38   40  
  39   41  void check_access(struct instruction *insn);
  40   42  void convert_load_instruction(struct instruction *, pseudo_t);
  41   43  void rewrite_load_instruction(struct instruction *, struct pseudo_list *);
  42   44  int dominates(pseudo_t pseudo, struct instruction *insn, struct instruction *dom, int local);
  43   45  
  44      -extern void clear_liveness(struct entrypoint *ep);
  45      -extern void track_pseudo_liveness(struct entrypoint *ep);
  46      -extern void track_pseudo_death(struct entrypoint *ep);
  47      -extern void track_phi_uses(struct instruction *insn);
  48      -
  49   46  extern void vrfy_flow(struct entrypoint *ep);
  50   47  extern int pseudo_in_list(struct pseudo_list *list, pseudo_t pseudo);
  51   48  
  52   49  #endif
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX