# dmd.backend.oper

Compiler implementation of the D programming language.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: backend/`oper`.d

- `rel_not`

  #### Declaration

  `nothrow @nogc OPER `rel_not`(OPER `op`);`

  Determine things about relational operators.

- `convidx`

  #### Declaration

  `nothrow @nogc int `convidx`(OPER `op`);`

  Conversion operators. Convert from conversion operator to conversion index parallel array invconvtab[] in cgelem.c

  #### Parameters

  `OPER `op`` | conversion operator

- `optab1`

  #### Declaration

  `immutable ubyte[OPMAX] `optab1`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `optab2`

  #### Declaration

  `immutable ubyte[OPMAX] `optab2`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `optab3`

  #### Declaration

  `immutable ubyte[OPMAX] `optab3`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `_rel_exception`

  #### Declaration

  `immutable ubyte[RELMAX] `_rel_exception`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `_rel_unord`

  #### Declaration

  `immutable ubyte[RELMAX] `_rel_unord`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `_rel_not`

  #### Declaration

  `immutable ubyte[RELMAX] `_rel_not`;`

  Logical negation

  #### Discussion

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `_rel_swap`

  #### Declaration

  `immutable ubyte[RELMAX] `_rel_swap`;`

  Operand swap

  #### Discussion

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `_rel_integral`

  #### Declaration

  `immutable ubyte[RELMAX] `_rel_integral`;`

  If operands are integral types

  #### Discussion

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `opcost`

  #### Declaration

  `immutable ubyte[OPMAX] `opcost`;`

  Determine the cost of evaluating an operator.

  #### Discussion

  Used for reordering elem trees to minimize register usage.
  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?

- `debtab`

  #### Declaration

  `const(char)*[OPMAX] `debtab`;`

  Determine properties of an elem. EBIN binary node? EUNA unary node? EOP operator node (unary or binary)? ERTOL right to left evaluation (left to right is default) Eunambig unambiguous definition elem?