Home
last modified time | relevance | path

Searched refs:lir (Results 1 – 15 of 15) sorted by relevance

/tools/dexter/dexter/
Ddisassembler.h27 class PrintCodeIrVisitor : public lir::Visitor {
29 PrintCodeIrVisitor(std::shared_ptr<ir::DexFile> dex_ir, lir::ControlFlowGraph* cfg) in PrintCodeIrVisitor()
33 virtual bool Visit(lir::Bytecode* bytecode) override;
34 virtual bool Visit(lir::PackedSwitchPayload* packed_switch) override;
35 virtual bool Visit(lir::SparseSwitchPayload* sparse_switch) override;
36 virtual bool Visit(lir::ArrayData* array_data) override;
37 virtual bool Visit(lir::Label* label) override;
38 virtual bool Visit(lir::CodeLocation* location) override;
39 virtual bool Visit(lir::Const32* const32) override;
40 virtual bool Visit(lir::Const64* const64) override;
[all …]
Ddisassembler.cc41 void PrintCodeIrVisitor::StartInstruction(const lir::Instruction* instr) { in StartInstruction()
45 const lir::BasicBlock& current_block = cfg_->basic_blocks[current_block_index_]; in StartInstruction()
51 void PrintCodeIrVisitor::EndInstruction(const lir::Instruction* instr) { in EndInstruction()
55 const lir::BasicBlock& current_block = cfg_->basic_blocks[current_block_index_]; in EndInstruction()
62 bool PrintCodeIrVisitor::Visit(lir::Bytecode* bytecode) { in Visit()
76 bool PrintCodeIrVisitor::Visit(lir::PackedSwitchPayload* packed_switch) { in Visit()
89 bool PrintCodeIrVisitor::Visit(lir::SparseSwitchPayload* sparse_switch) { in Visit()
101 bool PrintCodeIrVisitor::Visit(lir::ArrayData* array_data) { in Visit()
108 bool PrintCodeIrVisitor::Visit(lir::CodeLocation* target) { in Visit()
113 bool PrintCodeIrVisitor::Visit(lir::Const32* const32) { in Visit()
[all …]
Dexperimental.cc37 lir::CodeIr code_ir(ir_method.get(), dex_ir); in FullRewrite()
38 lir::ControlFlowGraph cfg_compact(&code_ir, false); in FullRewrite()
39 lir::ControlFlowGraph cfg_verbose(&code_ir, true); in FullRewrite()
56 lir::CodeIr code_ir(ir_method.get(), dex_ir); in StressWrapInvoke()
69 auto bytecode = dynamic_cast<lir::Bytecode*>(instr); in StressWrapInvoke()
88 auto orig_method = bytecode->CastOperand<lir::Method>(1)->ir_method; in StressWrapInvoke()
105 auto wraper_method = code_ir.Alloc<lir::Method>(ir_method_decl, ir_method_decl->orig_index); in StressWrapInvoke()
108 auto new_call = code_ir.Alloc<lir::Bytecode>(); in StressWrapInvoke()
146 lir::CodeIr code_ir(ir_method.get(), dex_ir); in StressEntryHook()
166 auto target_method = code_ir.Alloc<lir::Method>(ir_method_decl, ir_method_decl->orig_index); in StressEntryHook()
[all …]
/tools/dexter/slicer/
Dinstrumentation.cc28 struct BytecodeConvertingVisitor : public lir::Visitor {
29 lir::Bytecode* out = nullptr;
30 bool Visit(lir::Bytecode* bytecode) { in Visit()
36 void BoxValue(lir::Bytecode* bytecode, in BoxValue()
37 lir::CodeIr* code_ir, in BoxValue()
83 auto boxing_method = code_ir->Alloc<lir::Method>(ir_method_decl, ir_method_decl->orig_index); in BoxValue()
85 auto args = code_ir->Alloc<lir::VRegRange>(src_reg, 1 + is_wide); in BoxValue()
86 auto boxing_invoke = code_ir->Alloc<lir::Bytecode>(); in BoxValue()
92 auto move_result = code_ir->Alloc<lir::Bytecode>(); in BoxValue()
94 move_result->operands.push_back(code_ir->Alloc<lir::VReg>(dst_reg)); in BoxValue()
[all …]
Dtryblocks_encoder.cc22 namespace lir { namespace
Dcontrol_flow_graph.cc19 namespace lir { namespace
Ddebuginfo_encoder.cc26 namespace lir { namespace
Dcode_ir.cc33 namespace lir { namespace
Dbytecode_encoder.cc26 namespace lir { namespace
/tools/dexter/slicer/export/slicer/
Dinstrumentation.h35 virtual bool Apply(lir::CodeIr* code_ir) = 0;
72 virtual bool Apply(lir::CodeIr* code_ir) override;
78 bool InjectArrayParamsHook(lir::CodeIr* code_ir, lir::Bytecode* bytecode);
105 virtual bool Apply(lir::CodeIr* code_ir) override;
134 virtual bool Apply(lir::CodeIr* code_ir) override;
176 virtual bool Apply(lir::CodeIr* code_ir) override;
184 void RegsRenumbering(lir::CodeIr* code_ir);
185 void ShiftParams(lir::CodeIr* code_ir);
186 void Allocate(lir::CodeIr* code_ir, dex::u4 first_reg, int count);
Dtryblocks_encoder.h25 namespace lir {
Ddebuginfo_encoder.h27 namespace lir {
Dcontrol_flow_graph.h24 namespace lir {
Dbytecode_encoder.h27 namespace lir {
Dcode_ir.h44 namespace lir {