Home
last modified time | relevance | path

Searched refs:MachineInsn (Results 1 – 25 of 26) sorted by relevance

12

/frameworks/libs/binary_translation/backend/include/berberis/backend/x86_64/
Dinsn_folding.h32 [[nodiscard]] std::pair<const MachineInsn*, int> Get(MachineReg reg) const { in Get()
38 [[nodiscard]] std::pair<const MachineInsn*, int> Get(MachineReg reg, int use_index) const { in Get()
48 void ProcessInsn(const MachineInsn* insn);
52 void Set(MachineReg reg, const MachineInsn* insn) { in Set()
57 void MapDefRegs(const MachineInsn* insn);
58 ArenaVector<std::pair<const MachineInsn*, int>> def_map_;
68 std::tuple<bool, MachineInsn*> TryFoldInsn(const MachineInsn* insn);
74 bool IsWritingSameFlagsValue(const MachineInsn* insn) const;
76 std::tuple<bool, MachineInsn*> TryFoldImmediateInput(const MachineInsn* insn);
77 std::tuple<bool, MachineInsn*> TryFoldRedundantMovl(const MachineInsn* insn);
[all …]
Drename_copy_uses.h34 void RenameUseIfMapped(MachineInsn* insn, int i);
35 void ProcessDef(MachineInsn* insn, int i);
36 void ProcessCopy(MachineInsn* copy);
Dmachine_ir.h116 class MachineInsnX86_64 : public MachineInsn {
195 : MachineInsn(info->opcode, info->num_reg_operands, info->reg_kinds, regs_, info->kind), in MachineInsnX86_64()
215 inline const MachineInsnX86_64* AsMachineInsnX86_64(const MachineInsn* insn) { in AsMachineInsnX86_64()
219 inline MachineInsnX86_64* AsMachineInsnX86_64(MachineInsn* insn) { in AsMachineInsnX86_64()
330 [[nodiscard]] static bool IsControlTransfer(MachineInsn* insn) { in IsControlTransfer()
Dmachine_insn_intrinsics.h113 class MachineInsn;
121 class MachineInsn<AsmCallInfo, kMnemo, kOpcode, std::tuple<CtorArgs...>, Bindings...> final
131 static constexpr MachineInsn* (MachineIRBuilder::*kGenFunc)(CtorArgs...) =
132 &MachineIRBuilder::template Gen<MachineInsn>;
134 explicit MachineInsn(CtorArgs... args) : MachineInsnX86_64(&kInfo) {
/frameworks/libs/binary_translation/intrinsics/include/berberis/intrinsics/
Dintrinsics_args.h224 template <typename MachineInsn, int arguments_count>
230 MachineInsn::RegKindAt(reg_arguments).IsDef()) { in IsCompatible()
234 !MachineInsn::RegKindAt(reg_arguments).IsDef() && in IsCompatible()
235 !IsFixedRegClass(MachineInsn::RegKindAt(reg_arguments).RegClass())) { in IsCompatible()
239 IsFixedRegClass(MachineInsn::RegKindAt(reg_arguments).RegClass())) { in IsCompatible()
243 !IsFixedRegClass(MachineInsn::RegKindAt(reg_arguments).RegClass())) { in IsCompatible()
247 IsFixedRegClass(MachineInsn::RegKindAt(reg_arguments).RegClass())) { in IsCompatible()
251 !IsFixedRegClass(MachineInsn::RegKindAt(reg_arguments).RegClass())) { in IsCompatible()
256 !MachineInsn::RegKindAt(reg_arguments).IsInput()) { in IsCompatible()
260 MachineInsn::RegKindAt(reg_arguments).IsInput()) { in IsCompatible()
[all …]
/frameworks/libs/binary_translation/backend/x86_64/
Dinsn_folding.cc32 void DefMap::MapDefRegs(const MachineInsn* insn) { in MapDefRegs()
48 void DefMap::ProcessInsn(const MachineInsn* insn) { in ProcessInsn()
76 MachineInsn* InsnFolding::NewImmInsnFromRegInsn(const MachineInsn* insn, int32_t imm32) { in NewImmInsnFromRegInsn()
77 MachineInsn* folded_insn; in NewImmInsnFromRegInsn()
141 bool InsnFolding::IsWritingSameFlagsValue(const MachineInsn* write_flags_insn) const { in IsWritingSameFlagsValue()
171 std::tuple<bool, MachineInsn*> InsnFolding::TryFoldImmediateInput(const MachineInsn* insn) { in TryFoldImmediateInput()
200 std::tuple<bool, MachineInsn*> InsnFolding::TryFoldRedundantMovl(const MachineInsn* insn) { in TryFoldRedundantMovl()
223 std::tuple<bool, MachineInsn*> InsnFolding::TryFoldInsn(const MachineInsn* insn) { in TryFoldInsn()
357 MachineInsn* new_write_flags = in FoldWriteFlags()
Dcode.cc156 : MachineInsn(kMachineOpPseudoBranch, 0, nullptr, nullptr, kMachineInsnSideEffects), in PseudoBranch()
165 : MachineInsn(kMachineOpPseudoCondBranch, in PseudoCondBranch()
176 : MachineInsn(kMachineOpPseudoJump, 0, nullptr, nullptr, kMachineInsnSideEffects), in PseudoJump()
181 : MachineInsn(kMachineOpPseudoIndirectJump, in PseudoIndirectJump()
192 : MachineInsn(kMachineOpPseudoCopy, in PseudoCopy()
202 : MachineInsn(kMachineOpPseudoDefXReg, in PseudoDefXReg()
210 : MachineInsn(kMachineOpPseudoDefReg, in PseudoDefReg()
220 : MachineInsn(kMachineOpPseudoReadFlags, in PseudoReadFlags()
231 : MachineInsn(kMachineOpPseudoWriteFlags, in PseudoWriteFlags()
Drename_copy_uses.cc35 void RenameCopyUsesMap::RenameUseIfMapped(MachineInsn* insn, int i) { in RenameUseIfMapped()
53 void RenameCopyUsesMap::ProcessDef(MachineInsn* insn, int i) { in ProcessDef()
63 void RenameCopyUsesMap::ProcessCopy(MachineInsn* copy) { in ProcessCopy()
94 for (MachineInsn* insn : bb->insn_list()) { in RenameCopyUses()
Drename_vregs_local_test.cc54 MachineInsn* insn = *insn_it; in TEST()
88 MachineInsn* insn = *insn_it; in TEST()
123 MachineInsn* insn = *insn_it; in TEST()
165 MachineInsn* insn = *insn_it; in TEST()
202 MachineInsn* insn = *insn_it; in TEST()
240 MachineInsn* insn = *insn_it; in TEST()
302 MachineInsn* insn = *insn_it; in TEST()
Dmachine_ir_opt.cc66 bool AreResultsUsed(const MachineInsn* insn, const RegUsageBitSet& is_reg_used) { in AreResultsUsed()
75 void SetInsnResultsUnused(const MachineInsn* insn, RegUsageBitSet& is_reg_used) { in SetInsnResultsUnused()
83 void SetInsnArgumentsUsed(const MachineInsn* insn, RegUsageBitSet& is_reg_used) { in SetInsnArgumentsUsed()
105 MachineInsn* insn = *insn_it++; in RemoveDeadCode()
250 const MachineInsn* last_insn = bb->insn_list().back(); in IsForwarderBlock()
Dinsn_folding_test.cc67 const MachineInsn* insn = *insn_it; in TryRegRegInsnFolding()
114 const MachineInsn* insn = *insn_it; in TryMovInsnFolding()
209 const MachineInsn* insn = *insn_it; in TEST()
247 const MachineInsn* insn = *insn_it; in TEST()
284 const MachineInsn* insn = *std::next(insn_it); in TEST()
316 const MachineInsn* insn = *(bb->insn_list().begin()); in TEST()
426 const MachineInsn* insn = *insn_it; in TEST()
507 MachineInsn* insn = *insn_it; in TEST()
Dmachine_ir_opt_test.cc56 MachineInsn* insn = *insn_it; in TEST()
86 MachineInsn* insn = *insn_it; in TEST()
114 MachineInsn* insn = *insn_it; in TEST()
145 MachineInsn* insn = *insn_it++; in TEST()
171 MachineInsn* insn = *insn_it++; in TEST()
200 MachineInsn* insn = *insn_it++; in TEST()
573 MachineInsn* bb0_insn = bb0->insn_list().back(); in TEST()
635 MachineInsn* bb0_insn = bb0->insn_list().front(); in TEST()
700 MachineInsn* bb0_insn = bb0->insn_list().front(); in TEST()
917 MachineInsn* bb0_last_insn = bb0->insn_list().back(); in TEST()
[all …]
Drename_vregs_local.cc55 MachineInsn* insn = *insn_it; in TryRenameRegOperand()
90 MachineInsn* insn = *insn_it; in RenameInsnListRegs()
Dloop_guest_context_optimizer.cc98 auto* new_insn = static_cast<MachineInsn*>( in ReplacePutAndUpdateMap()
121 MachineInsn* get_insn; in GenerateGetInsns()
156 MachineInsn* put_insn; in GeneratePutInsns()
Dliveness_analyzer.cc66 const MachineInsn* insn = *insn_it; in VisitBasicBlock()
Dliveness_analyzer_test.cc84 class FakeInsnWithDefEarlyClobber : public MachineInsn {
87 : MachineInsn(kMachineOpUndefined, 1, &reg_kind_, &reg_, kMachineInsnDefault), reg_{reg} {} in FakeInsnWithDefEarlyClobber()
/frameworks/libs/binary_translation/backend/include/berberis/backend/common/
Dmachine_ir.h200 class MachineInsn {
202 virtual ~MachineInsn() { in ~MachineInsn()
241 MachineInsn(MachineOpcode opcode, in MachineInsn() function
269 std::string GetRegOperandDebugString(const MachineInsn* insn, int i);
271 using MachineInsnList = ArenaList<MachineInsn*>;
278 [[nodiscard]] MachineInsn* insn() const { return *iterator_; } in insn()
280 void InsertBefore(MachineInsn* insn) const { list_->insert(iterator_, insn); } in InsertBefore()
282 void InsertAfter(MachineInsn* insn) const { in InsertAfter()
442 class PseudoBranch : public MachineInsn {
458 class PseudoCondBranch : public MachineInsn {
[all …]
Dlifetime_analysis.h61 void TrySetMoveHint(const MachineInsn* insn);
Dmachine_ir_builder.h70 void InsertInsn(MachineInsn* insn) { bb_->insn_list().push_back(insn); } in InsertInsn()
/frameworks/libs/binary_translation/backend/testing/include/x86_64/
Dloop_guest_context_optimizer_test_checks.h28 inline MachineReg CheckCopyGetInsnAndObtainMappedReg(MachineInsn* get_insn, in CheckCopyGetInsnAndObtainMappedReg()
35 inline MachineReg CheckCopyPutInsnAndObtainMappedReg(MachineInsn* put_insn, in CheckCopyPutInsnAndObtainMappedReg()
53 inline void CheckGetInsn(MachineInsn* insn, MachineOpcode opcode, MachineReg reg, size_t disp) { in CheckGetInsn()
61 inline void CheckPutInsn(MachineInsn* insn, MachineOpcode opcode, MachineReg reg, size_t disp) { in CheckPutInsn()
/frameworks/libs/binary_translation/backend/common/
Dmachine_ir_opt.cc31 machine_bb->insn_list().remove_if([](MachineInsn* machine_insn) { in RemoveNopPseudoCopy()
55 const MachineInsn* last_insn = machine_bb->insn_list().back(); in RemoveForwarderBlocks()
95 MachineInsn* last_insn = insn_list.back(); in RemoveForwarderBlocks()
Dlifetime_analysis.cc50 void VRegLifetimeAnalysis::TrySetMoveHint(const MachineInsn* insn) { in TrySetMoveHint()
71 const MachineInsn* insn = pos.insn(); in AddInsn()
Dmachine_ir_debug.cc52 std::string GetRegOperandDebugString(const MachineInsn* insn, int i) { in GetRegOperandDebugString()
/frameworks/libs/binary_translation/heavy_optimizer/riscv64/
Dinline_intrinsic.h364 using MachineInsn = typename AsmCallInfo::template MachineInsn<berberis::x86_64::MachineInsn, in operator() local
367 std::apply(MachineInsn::kGenFunc, in operator()
/frameworks/libs/binary_translation/intrinsics/common_to_x86/include/berberis/intrinsics/common_to_x86/
Dintrinsics_bindings.h448 using MachineInsn = MachineInsnType<AsmCallInfo, variable

12