php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
ir_cfg.c File Reference
#include "ir.h"
#include "ir_private.h"

Go to the source code of this file.

Data Structures

struct  _ir_edge_info
 
struct  _ir_chain
 

Macros

#define IR_DEBUG_BB_SCHEDULE_GRAPH   0
 

Typedefs

typedef struct _ir_edge_info ir_edge_info
 
typedef struct _ir_chain ir_chain
 

Functions

IR_ALWAYS_INLINE void _ir_add_successors (const ir_ctx *ctx, ir_ref ref, ir_worklist *worklist)
 
IR_ALWAYS_INLINE void _ir_add_predecessors (const ir_insn *insn, ir_worklist *worklist)
 
void ir_reset_cfg (ir_ctx *ctx)
 
int ir_build_cfg (ir_ctx *ctx)
 
int ir_build_dominators_tree (ir_ctx *ctx)
 
int ir_find_loops (ir_ctx *ctx)
 
IR_ALWAYS_INLINE uint32_t ir_chain_head (ir_chain *chains, uint32_t src)
 
int ir_schedule_blocks (ir_ctx *ctx)
 
uint32_t ir_skip_empty_target_blocks (const ir_ctx *ctx, uint32_t b)
 
uint32_t ir_next_block (const ir_ctx *ctx, uint32_t b)
 
void ir_get_true_false_blocks (const ir_ctx *ctx, uint32_t b, uint32_t *true_block, uint32_t *false_block)
 

Macro Definition Documentation

◆ IR_DEBUG_BB_SCHEDULE_GRAPH

#define IR_DEBUG_BB_SCHEDULE_GRAPH   0

Definition at line 1206 of file ir_cfg.c.

Typedef Documentation

◆ ir_chain

typedef struct _ir_chain ir_chain

◆ ir_edge_info

typedef struct _ir_edge_info ir_edge_info

Function Documentation

◆ _ir_add_predecessors()

IR_ALWAYS_INLINE void _ir_add_predecessors ( const ir_insn * insn,
ir_worklist * worklist )

Definition at line 43 of file ir_cfg.c.

◆ _ir_add_successors()

IR_ALWAYS_INLINE void _ir_add_successors ( const ir_ctx * ctx,
ir_ref ref,
ir_worklist * worklist )

Definition at line 13 of file ir_cfg.c.

◆ ir_build_cfg()

int ir_build_cfg ( ir_ctx * ctx)

Definition at line 80 of file ir_cfg.c.

◆ ir_build_dominators_tree()

int ir_build_dominators_tree ( ir_ctx * ctx)

Definition at line 672 of file ir_cfg.c.

◆ ir_chain_head()

IR_ALWAYS_INLINE uint32_t ir_chain_head ( ir_chain * chains,
uint32_t src )

Definition at line 1163 of file ir_cfg.c.

◆ ir_find_loops()

int ir_find_loops ( ir_ctx * ctx)

Definition at line 911 of file ir_cfg.c.

◆ ir_get_true_false_blocks()

void ir_get_true_false_blocks ( const ir_ctx * ctx,
uint32_t b,
uint32_t * true_block,
uint32_t * false_block )

Definition at line 1929 of file ir_cfg.c.

◆ ir_next_block()

uint32_t ir_next_block ( const ir_ctx * ctx,
uint32_t b )

Definition at line 1898 of file ir_cfg.c.

◆ ir_reset_cfg()

void ir_reset_cfg ( ir_ctx * ctx)

Definition at line 62 of file ir_cfg.c.

◆ ir_schedule_blocks()

int ir_schedule_blocks ( ir_ctx * ctx)

Definition at line 1833 of file ir_cfg.c.

◆ ir_skip_empty_target_blocks()

uint32_t ir_skip_empty_target_blocks ( const ir_ctx * ctx,
uint32_t b )

Definition at line 1893 of file ir_cfg.c.