|
| InstructionSelector (Zone *zone, size_t node_count, Linkage *linkage, InstructionSequence *sequence, Schedule *schedule, SourcePositionTable *source_positions, Frame *frame, EnableSwitchJumpTable enable_switch_jump_table, SourcePositionMode source_position_mode=kCallSourcePositions, Features features=SupportedFeatures(), EnableScheduling enable_scheduling=FLAG_turbo_instruction_scheduling ? kEnableScheduling :kDisableScheduling, EnableRootsRelativeAddressing enable_roots_relative_addressing=kDisableRootsRelativeAddressing, PoisoningMitigationLevel poisoning_level=PoisoningMitigationLevel::kDontPoison, EnableTraceTurboJson trace_turbo=kDisableTraceTurboJson) |
|
bool | SelectInstructions () |
|
void | StartBlock (RpoNumber rpo) |
|
void | EndBlock (RpoNumber rpo) |
|
void | AddInstruction (Instruction *instr) |
|
void | AddTerminator (Instruction *instr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, InstructionOperand b, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, InstructionOperand b, InstructionOperand c, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, InstructionOperand b, InstructionOperand c, InstructionOperand d, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, InstructionOperand b, InstructionOperand c, InstructionOperand d, InstructionOperand e, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, InstructionOperand output, InstructionOperand a, InstructionOperand b, InstructionOperand c, InstructionOperand d, InstructionOperand e, InstructionOperand f, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (InstructionCode opcode, size_t output_count, InstructionOperand *outputs, size_t input_count, InstructionOperand *inputs, size_t temp_count=0, InstructionOperand *temps=nullptr) |
|
Instruction * | Emit (Instruction *instr) |
|
Instruction * | EmitWithContinuation (InstructionCode opcode, FlagsContinuation *cont) |
|
Instruction * | EmitWithContinuation (InstructionCode opcode, InstructionOperand a, FlagsContinuation *cont) |
|
Instruction * | EmitWithContinuation (InstructionCode opcode, InstructionOperand a, InstructionOperand b, FlagsContinuation *cont) |
|
Instruction * | EmitWithContinuation (InstructionCode opcode, InstructionOperand a, InstructionOperand b, InstructionOperand c, FlagsContinuation *cont) |
|
Instruction * | EmitWithContinuation (InstructionCode opcode, size_t output_count, InstructionOperand *outputs, size_t input_count, InstructionOperand *inputs, FlagsContinuation *cont) |
|
Instruction * | EmitDeoptimize (InstructionCode opcode, size_t output_count, InstructionOperand *outputs, size_t input_count, InstructionOperand *inputs, DeoptimizeKind kind, DeoptimizeReason reason, VectorSlotPair const &feedback, Node *frame_state) |
|
bool | IsSupported (CpuFeature feature) const |
|
bool | NeedsPoisoning (IsSafetyCheck safety_check) const |
|
bool | CanCover (Node *user, Node *node) const |
|
bool | CanCoverTransitively (Node *user, Node *node, Node *node_input) const |
|
bool | IsOnlyUserOfNodeInSameBlock (Node *user, Node *node) const |
|
bool | IsDefined (Node *node) const |
|
bool | IsUsed (Node *node) const |
|
bool | IsLive (Node *node) const |
|
int | GetEffectLevel (Node *node) const |
|
int | GetVirtualRegister (const Node *node) |
|
const std::map< NodeId, int > | GetVirtualRegistersForTesting () const |
|
bool | CanAddressRelativeToRootsRegister () const |
|
bool | CanUseRootsRegister () const |
|
Isolate * | isolate () const |
|
const ZoneVector< std::pair< int, int > > & | instr_origins () const |
|
|
static Features | SupportedFeatures () |
|
static MachineOperatorBuilder::Flags | SupportedMachineOperatorFlags () |
|
static MachineOperatorBuilder::AlignmentRequirements | AlignmentRequirements () |
|
static void | CanonicalizeShuffleForTesting (bool inputs_equal, uint8_t *shuffle, bool *needs_swap, bool *is_swizzle) |
|
static bool | TryMatchIdentityForTesting (const uint8_t *shuffle) |
|
template<int LANES> |
static bool | TryMatchDupForTesting (const uint8_t *shuffle, int *index) |
|
static bool | TryMatch32x4ShuffleForTesting (const uint8_t *shuffle, uint8_t *shuffle32x4) |
|
static bool | TryMatch16x8ShuffleForTesting (const uint8_t *shuffle, uint8_t *shuffle16x8) |
|
static bool | TryMatchConcatForTesting (const uint8_t *shuffle, uint8_t *offset) |
|
static bool | TryMatchBlendForTesting (const uint8_t *shuffle) |
|
Definition at line 247 of file instruction-selector.h.