Home | History | Annotate | Download | only in dex

Lines Matching refs:MIR

239  * Normalized use/def for a MIR operation using SSA names rather than vregs.  Note that
268 struct MIR {
271 * additional fields on as-needed basis. Question: how to support MIR Pseudo-ops; probably
350 int16_t m_unit_index; // From which method was this MIR included
352 MIR* next;
358 MIR* throw_insn;
371 explicit MIR():offset(0), optimization_flags(0), m_unit_index(0), bb(NullBasicBlockId),
380 MIR* Copy(CompilationUnit *c_unit);
381 MIR* Copy(MIRGraph* mir_Graph);
384 return arena->Alloc(sizeof(MIR), kArenaAllocMIR);
409 MIR* first_mir_insn;
410 MIR* last_mir_insn;
418 void AppendMIR(MIR* mir);
419 void AppendMIRList(MIR* first_list_mir, MIR* last_list_mir);
420 void AppendMIRList(const std::vector<MIR*>& insns);
421 void PrependMIR(MIR* mir);
422 void PrependMIRList(MIR* first_list_mir, MIR* last_list_mir);
423 void PrependMIRList(const std::vector<MIR*>& to_add);
424 void InsertMIRAfter(MIR* current_mir, MIR* new_mir);
425 void InsertMIRListAfter(MIR* insert_after, MIR* first_list_mir, MIR* last_list_mir);
426 MIR* FindPreviousMIR(MIR* mir);
427 void InsertMIRBefore(MIR* insert_before, MIR* list);
428 void InsertMIRListBefore(MIR* insert_before, MIR* first_list_mir, MIR* last_list_mir);
429 bool RemoveMIR(MIR* mir);
430 bool RemoveMIRList(MIR* first_list_mir, MIR* last_list_mir);
436 * @brief Reset the optimization_flags field of each MIR.
464 * @brief Used to obtain the next MIR that follows unconditionally.
465 * @details The implementation does not guarantee that a MIR does not
468 * @param current The MIR for which to find an unconditional follower.
469 * @return Returns the following MIR if one can be found.
471 MIR* GetNextUnconditionalMir(MIRGraph* mir_graph, MIR* current);
532 MIR* mir;
556 * Parse dex method and add MIR at current insert point. Returns id (which is
662 const MirIFieldLoweringInfo& GetIFieldLoweringInfo(MIR* mir) const {
663 DCHECK_LT(mir->meta.ifield_lowering_info, ifield_lowering_infos_.Size());
664 return ifield_lowering_infos_.GetRawStorage()[mir->meta.ifield_lowering_info];
667 const MirSFieldLoweringInfo& GetSFieldLoweringInfo(MIR* mir) const {
668 DCHECK_LT(mir->meta.sfield_lowering_info, sfield_lowering_infos_.Size());
669 return sfield_lowering_infos_.GetRawStorage()[mir->meta.sfield_lowering_info];
674 const MirMethodLoweringInfo& GetMethodLoweringInfo(MIR* mir) {
675 DCHECK_LT(mir->meta.method_lowering_info, method_lowering_infos_.Size());
676 return method_lowering_infos_.GetRawStorage()[mir->meta.method_lowering_info];
679 void ComputeInlineIFieldLoweringInfo(uint16_t field_idx, MIR* invoke, MIR* iget_or_iput);
769 RegLocation GetRawSrc(MIR* mir, int num) {
770 DCHECK(num < mir->ssa_rep->num_uses);
771 RegLocation res = reg_location_[mir->ssa_rep->uses[num]];
775 RegLocation GetRawDest(MIR* mir) {
776 DCHECK_GT(mir->ssa_rep->num_defs, 0);
777 RegLocation res = reg_location_[mir->ssa_rep->defs[0]];
781 RegLocation GetDest(MIR* mir) {
782 RegLocation res = GetRawDest(mir);
787 RegLocation GetSrc(MIR* mir, int num) {
788 RegLocation res = GetRawSrc(mir, num);
793 RegLocation GetDestWide(MIR* mir) {
794 RegLocation res = GetRawDest(mir);
799 RegLocation GetSrcWide(MIR* mir, int low) {
800 RegLocation res = GetRawSrc(mir, low);
919 MIR* FindMoveResult(BasicBlock* bb, MIR* mir);
968 char* GetDalvikDisassembly(const MIR* mir);
975 CallInfo* NewMemCallInfo(BasicBlock* bb, MIR* mir, InvokeType type, bool is_range);
977 MIR* NewMIR();
978 MIR* AdvanceMIR(BasicBlock** p_bb, MIR* mir);
1029 static uint64_t GetDataFlowAttributes(MIR* mir);
1039 void AllocateSSAUseData(MIR *mir, int num_uses);
1040 void AllocateSSADefData(MIR *mir, int num_defs);
1064 bool InferTypeAndSize(BasicBlock* bb, MIR* mir, bool changed);
1089 const MIR::DecodedInstruction& d_insn);
1091 bool InvokeUsesMethodStar(MIR* mir);
1092 int ParseInsn(const uint16_t* code_ptr, MIR::DecodedInstruction* decoded_instruction);
1100 BasicBlock* ProcessCanBranch(BasicBlock* cur_block, MIR* insn, DexOffset cur_offset, int width,
1102 BasicBlock* ProcessCanSwitch(BasicBlock* cur_block, MIR* insn, DexOffset cur_offset, int width,
1104 BasicBlock* ProcessCanThrow(BasicBlock* cur_block, MIR* insn, DexOffset cur_offset, int width,
1109 void DataFlowSSAFormat35C(MIR* mir);
1110 void DataFlowSSAFormat3RC(MIR* mir);
1111 void DataFlowSSAFormatExtended(MIR* mir);