|
GCC Middle and Back End API Reference
|
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "rtl.h"#include "df.h"#include "tree-pass.h"#include "memmodel.h"#include "emit-rtl.h"#include "insn-config.h"#include "recog.h"#include "tree.h"#include "expr.h"#include "target.h"#include "inchash.h"#include "rtlhash.h"#include "print-rtl.h"#include "rtl-iter.h"#include "regs.h"#include "function-abi.h"
Macros | |
| #define | FAILURE_FORMAT ";; Can't rematerialize set of reg %d in %d[bb:%d]: " |
| #define | FAILURE_ARGS regno, INSN_UID (insn), BLOCK_FOR_INSN (insn)->index |
Functions | |
| static bool | scratch_equal (const_rtx *x, const_rtx *y, rtx *nx, rtx *ny) |
| bool | empty_p (bitmap b) |
| static int | compare_candidates (const void *x_in, const void *y_in) |
| static bool | available_across_edge_p (edge e) |
| rtl_opt_pass * | make_pass_early_remat (gcc::context *ctxt) |
Variables | |
| static unsigned int * | rpo_index |
| #define FAILURE_ARGS regno, INSN_UID (insn), BLOCK_FOR_INSN (insn)->index |
| #define FAILURE_FORMAT ";; Can't rematerialize set of reg %d in %d[bb:%d]: " |
Return true if available values survive across edge E.
|
static |
Order remat_candidates X_IN and Y_IN according to the cfg postorder.
References BLOCK_FOR_INSN(), DF_INSN_LUID, basic_block_def::index, rpo_index, and y.
Return true if B is null or empty.
References b, and bitmap_empty_p().
Referenced by finalize_type_size(), and push_fields_onto_fieldstack().
| rtl_opt_pass * make_pass_early_remat | ( | gcc::context * | ctxt | ) |
rtx_equal_p callback that treats any two SCRATCHes as equal. This allows us to compare two copies of a pattern, even though their SCRATCHes are always distinct.
References const0_rtx, GET_CODE, and y.
|
static |
Maps basic block indices to their position in the forward RPO.
Referenced by compare_candidates().