GCC Middle and Back End API Reference
rtx_test Class Reference
Collaboration diagram for rtx_test:

Public Types

enum  kind_enum {
  CODE , MODE , REGNO_FIELD , SUBREG_FIELD ,
  INT_FIELD , WIDE_INT_FIELD , VECLEN , PEEP2_COUNT ,
  VECLEN_GE , SAVED_CONST_INT , PREDICATE , DUPLICATE ,
  PATTERN , HAVE_NUM_CLOBBERS , C_TEST , SET_OP ,
  ACCEPT
}
 

Public Member Functions

 rtx_test ()
 
bool terminal_p () const
 
bool single_outcome_p () const
 

Static Public Member Functions

static rtx_test code (position *)
 
static rtx_test mode (position *)
 
static rtx_test regno_field (position *)
 
static rtx_test subreg_field (position *)
 
static rtx_test int_field (position *, int)
 
static rtx_test wide_int_field (position *, int)
 
static rtx_test veclen (position *)
 
static rtx_test peep2_count (int)
 
static rtx_test veclen_ge (position *, int)
 
static rtx_test predicate (position *, const pred_data *, machine_mode)
 
static rtx_test duplicate (position *, int)
 
static rtx_test pattern (position *, pattern_use *)
 
static rtx_test have_num_clobbers ()
 
static rtx_test c_test (const char *)
 
static rtx_test set_op (position *, int)
 
static rtx_test accept (const acceptance_type &)
 

Data Fields

positionpos
 
int pos_operand
 
kind_enum kind
 
union { 
 
   int   opno 
 
   int   min_len 
 
   struct { 
 
      bool   is_param 
 
      int   value 
 
   }   integer 
 
   struct { 
 
      const struct pred_data *   data 
 
      bool   mode_is_param 
 
      unsigned int   mode 
 
   }   predicate 
 
   pattern_use *   pattern 
 
   const char *   string 
 
   acceptance_type   acceptance 
 
u 
 

Private Member Functions

 rtx_test (position *, kind_enum)
 

Detailed Description

Represents a test performed by a decision.   

Member Enumeration Documentation

◆ kind_enum

Enumerator
CODE 
MODE 
REGNO_FIELD 
SUBREG_FIELD 
INT_FIELD 
WIDE_INT_FIELD 
VECLEN 
PEEP2_COUNT 
VECLEN_GE 
SAVED_CONST_INT 
PREDICATE 
DUPLICATE 
PATTERN 
HAVE_NUM_CLOBBERS 
C_TEST 
SET_OP 
ACCEPT 

Constructor & Destructor Documentation

◆ rtx_test() [1/2]

rtx_test::rtx_test ( )

Referenced by code(), have_num_clobbers(), and veclen().

◆ rtx_test() [2/2]

rtx_test::rtx_test ( position * pos_in,
kind_enum kind_in )
private

Member Function Documentation

◆ accept()

rtx_test rtx_test::accept ( const acceptance_type & acceptance)
static

◆ c_test()

rtx_test rtx_test::c_test ( const char * string)
static

References C_TEST, string, and u.

Referenced by match_pattern_1().

◆ code()

rtx_test rtx_test::code ( position * pos)
static

References CODE, pos, and rtx_test().

Referenced by match_pattern_2().

◆ duplicate()

rtx_test rtx_test::duplicate ( position * pos,
int opno )
static

References DUPLICATE, opno, pos, and u.

Referenced by match_pattern_2().

◆ have_num_clobbers()

rtx_test rtx_test::have_num_clobbers ( )
static

References HAVE_NUM_CLOBBERS, and rtx_test().

Referenced by match_pattern_1().

◆ int_field()

rtx_test rtx_test::int_field ( position * pos,
int opno )
static

References INT_FIELD, opno, pos, and u.

Referenced by match_pattern_2().

◆ mode()

static rtx_test rtx_test::mode ( position * )
static

◆ pattern()

static rtx_test rtx_test::pattern ( position * ,
pattern_use *  )
static

◆ peep2_count()

rtx_test rtx_test::peep2_count ( int min_len)
static

References min_len, PEEP2_COUNT, and u.

Referenced by match_pattern_1().

◆ predicate()

static rtx_test rtx_test::predicate ( position * ,
const pred_data * ,
machine_mode  )
static

◆ regno_field()

rtx_test rtx_test::regno_field ( position * pos)
static

References pos, and REGNO_FIELD.

Referenced by match_pattern_2().

◆ set_op()

rtx_test rtx_test::set_op ( position * pos,
int opno )
static

References opno, pos, SET_OP, and u.

Referenced by match_pattern_2().

◆ single_outcome_p()

bool rtx_test::single_outcome_p ( ) const
Return true if the test is a boolean that is always true.   

References kind, SET_OP, and terminal_p().

Referenced by find_subroutines().

◆ subreg_field()

rtx_test rtx_test::subreg_field ( position * pos)
static

References pos, and SUBREG_FIELD.

Referenced by match_pattern_2().

◆ terminal_p()

bool rtx_test::terminal_p ( ) const
Return true if the test represents an unconditionally successful match.   

References ACCEPT, acceptance, kind, PEEPHOLE2, acceptance_type::type, and u.

Referenced by single_outcome_p().

◆ veclen()

rtx_test rtx_test::veclen ( position * pos)
static

References pos, rtx_test(), and VECLEN.

Referenced by match_pattern_2().

◆ veclen_ge()

rtx_test rtx_test::veclen_ge ( position * pos,
int min_len )
static

References min_len, pos, u, and VECLEN_GE.

Referenced by match_pattern_2().

◆ wide_int_field()

rtx_test rtx_test::wide_int_field ( position * pos,
int opno )
static

References opno, pos, u, and WIDE_INT_FIELD.

Referenced by match_pattern_2().

Field Documentation

◆ acceptance

acceptance_type rtx_test::acceptance

◆ data

const struct pred_data* rtx_test::data

Referenced by print_test().

◆ [struct]

struct { ... } rtx_test::integer

◆ is_param

bool rtx_test::is_param

◆ kind

◆ min_len

int rtx_test::min_len

Referenced by peep2_count(), print_test(), and veclen_ge().

◆ mode

◆ mode_is_param

bool rtx_test::mode_is_param

◆ opno

◆ pattern

rtx_test rtx_test::pattern

◆ pos

◆ pos_operand

◆ predicate

rtx_test rtx_test::predicate

◆ string

const char* rtx_test::string

Referenced by c_test(), and print_test().

◆ [union]

◆ value

int rtx_test::value

The documentation for this class was generated from the following file: