Home
last modified time | relevance | path

Searched refs:instruction (Results 1 – 25 of 148) sorted by relevance

123456

/art/compiler/optimizing/
Dconstant_folding.cc50 void VisitEqual(HEqual* instruction) override;
51 void VisitNotEqual(HNotEqual* instruction) override;
53 void VisitAbove(HAbove* instruction) override;
54 void VisitAboveOrEqual(HAboveOrEqual* instruction) override;
55 void VisitBelow(HBelow* instruction) override;
56 void VisitBelowOrEqual(HBelowOrEqual* instruction) override;
58 void VisitAnd(HAnd* instruction) override;
59 void VisitCompare(HCompare* instruction) override;
60 void VisitMul(HMul* instruction) override;
61 void VisitOr(HOr* instruction) override;
[all …]
Dcode_generator_vector_arm_vixl.cc36 void LocationsBuilderARMVIXL::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
37 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar()
38 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
49 LOG(FATAL) << "Unsupported SIMD type: " << instruction->GetPackedType(); in VisitVecReplicateScalar()
54 void InstructionCodeGeneratorARMVIXL::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
55 LocationSummary* locations = instruction->GetLocations(); in VisitVecReplicateScalar()
57 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
61 DCHECK_EQ(8u, instruction->GetVectorLength()); in VisitVecReplicateScalar()
62 __ Vdup(Untyped8, dst, InputRegisterAt(instruction, 0)); in VisitVecReplicateScalar()
66 DCHECK_EQ(4u, instruction->GetVectorLength()); in VisitVecReplicateScalar()
[all …]
Dscheduler.cc77 HInstruction* instruction) const { in ArrayAccessHeapLocation()
79 size_t heap_loc = heap_location_collector_->GetArrayHeapLocation(instruction); in ArrayAccessHeapLocation()
104 static bool IsArrayAccess(const HInstruction* instruction) { in IsArrayAccess() argument
105 return instruction->IsArrayGet() || instruction->IsArraySet(); in IsArrayAccess()
108 static bool IsInstanceFieldAccess(const HInstruction* instruction) { in IsInstanceFieldAccess() argument
109 return instruction->IsInstanceFieldGet() || in IsInstanceFieldAccess()
110 instruction->IsInstanceFieldSet() || in IsInstanceFieldAccess()
111 instruction->IsPredicatedInstanceFieldGet() || in IsInstanceFieldAccess()
112 instruction->IsUnresolvedInstanceFieldGet() || in IsInstanceFieldAccess()
113 instruction->IsUnresolvedInstanceFieldSet(); in IsInstanceFieldAccess()
[all …]
Dinstruction_simplifier_arm64.cc44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction);
65 HInstruction* instruction = it.Current(); in VisitBasicBlock() local
66 if (instruction->IsInBlock()) { in VisitBasicBlock()
67 instruction->Accept(this); in VisitBasicBlock()
73 void VisitAnd(HAnd* instruction) override;
74 void VisitArrayGet(HArrayGet* instruction) override;
75 void VisitArraySet(HArraySet* instruction) override;
76 void VisitMul(HMul* instruction) override;
77 void VisitOr(HOr* instruction) override;
78 void VisitShl(HShl* instruction) override;
[all …]
Dcode_generator_vector_x86.cc28 void LocationsBuilderX86::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
29 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar()
30 HInstruction* input = instruction->InputAt(0); in VisitVecReplicateScalar()
32 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
57 LOG(FATAL) << "Unsupported SIMD type: " << instruction->GetPackedType(); in VisitVecReplicateScalar()
62 void InstructionCodeGeneratorX86::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
63 LocationSummary* locations = instruction->GetLocations(); in VisitVecReplicateScalar()
68 if (IsZeroBitPattern(instruction->InputAt(0))) { in VisitVecReplicateScalar()
73 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
77 DCHECK_EQ(16u, instruction->GetVectorLength()); in VisitVecReplicateScalar()
[all …]
Dcode_generator_vector_x86_64.cc28 void LocationsBuilderX86_64::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
29 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar()
30 HInstruction* input = instruction->InputAt(0); in VisitVecReplicateScalar()
32 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
52 LOG(FATAL) << "Unsupported SIMD type: " << instruction->GetPackedType(); in VisitVecReplicateScalar()
57 void InstructionCodeGeneratorX86_64::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
58 LocationSummary* locations = instruction->GetLocations(); in VisitVecReplicateScalar()
63 if (IsZeroBitPattern(instruction->InputAt(0))) { in VisitVecReplicateScalar()
68 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
72 DCHECK_EQ(16u, instruction->GetVectorLength()); in VisitVecReplicateScalar()
[all …]
Dinstruction_simplifier_arm.cc44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction);
63 HInstruction* instruction = it.Current(); in VisitBasicBlock() local
64 if (instruction->IsInBlock()) { in VisitBasicBlock()
65 instruction->Accept(this); in VisitBasicBlock()
70 void VisitAnd(HAnd* instruction) override;
71 void VisitArrayGet(HArrayGet* instruction) override;
72 void VisitArraySet(HArraySet* instruction) override;
73 void VisitMul(HMul* instruction) override;
74 void VisitOr(HOr* instruction) override;
75 void VisitShl(HShl* instruction) override;
[all …]
Dcode_sinking.cc46 static bool IsInterestingInstruction(HInstruction* instruction) { in IsInterestingInstruction() argument
48 if (instruction->GetBlock() == instruction->GetBlock()->GetGraph()->GetEntryBlock()) { in IsInterestingInstruction()
55 if (instruction->IsInstanceFieldSet()) { in IsInterestingInstruction()
56 if (instruction->AsInstanceFieldSet()->IsVolatile()) { in IsInterestingInstruction()
62 if (instruction->IsNewInstance() || instruction->IsNewArray() || instruction->IsLoadString()) { in IsInterestingInstruction()
68 if (instruction->IsConstructorFence()) { in IsInterestingInstruction()
69 HConstructorFence* ctor_fence = instruction->AsConstructorFence(); in IsInterestingInstruction()
83 if (instruction->CanThrow()) { in IsInterestingInstruction()
91 if (instruction->IsInstanceFieldSet()) { in IsInterestingInstruction()
92 if (!instruction->InputAt(0)->IsNewInstance()) { in IsInterestingInstruction()
[all …]
Dcode_generator_vector_arm64_neon.cc79 void LocationsBuilderARM64Neon::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
80 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar()
81 HInstruction* input = instruction->InputAt(0); in VisitVecReplicateScalar()
82 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
90 locations->SetInAt(0, NEONEncodableConstantOrRegister(input, instruction)); in VisitVecReplicateScalar()
96 NEONCanEncodeConstantAsImmediate(input->AsConstant(), instruction)) { in VisitVecReplicateScalar()
105 LOG(FATAL) << "Unsupported SIMD type: " << instruction->GetPackedType(); in VisitVecReplicateScalar()
110 void InstructionCodeGeneratorARM64Neon::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
111 LocationSummary* locations = instruction->GetLocations(); in VisitVecReplicateScalar()
114 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
[all …]
Dcode_generator_vector_arm64_sve.cc81 void LocationsBuilderARM64Sve::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
82 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar()
83 HInstruction* input = instruction->InputAt(0); in VisitVecReplicateScalar()
84 switch (instruction->GetPackedType()) { in VisitVecReplicateScalar()
92 locations->SetInAt(0, SVEEncodableConstantOrRegister(input, instruction)); in VisitVecReplicateScalar()
98 SVECanEncodeConstantAsImmediate(input->AsConstant(), instruction)) { in VisitVecReplicateScalar()
107 LOG(FATAL) << "Unsupported SIMD type: " << instruction->GetPackedType(); in VisitVecReplicateScalar()
112 void InstructionCodeGeneratorARM64Sve::VisitVecReplicateScalar(HVecReplicateScalar* instruction) { in VisitVecReplicateScalar() argument
113 DCHECK(instruction->IsPredicated()); in VisitVecReplicateScalar()
114 LocationSummary* locations = instruction->GetLocations(); in VisitVecReplicateScalar()
[all …]
Dinstruction_simplifier.cc58 bool TryReplaceWithRotate(HBinaryOperation* instruction);
68 bool TryHandleAssociativeAndCommutativeOperation(HBinaryOperation* instruction);
69 bool TrySubtractionChainSimplification(HBinaryOperation* instruction);
80 void VisitTypeConversion(HTypeConversion* instruction) override;
81 void VisitNullCheck(HNullCheck* instruction) override;
82 void VisitArrayLength(HArrayLength* instruction) override;
83 void VisitCheckCast(HCheckCast* instruction) override;
84 void VisitAbs(HAbs* instruction) override;
85 void VisitAdd(HAdd* instruction) override;
86 void VisitAnd(HAnd* instruction) override;
[all …]
Dinstruction_simplifier_x86_shared.cc21 bool TryCombineAndNot(HAnd* instruction) { in TryCombineAndNot() argument
22 DataType::Type type = instruction->GetType(); in TryCombineAndNot()
31 HInstruction* left = instruction->GetLeft(); in TryCombineAndNot()
32 HInstruction* right = instruction->GetRight(); in TryCombineAndNot()
43 ArenaAllocator* arena = instruction->GetBlock()->GetGraph()->GetAllocator(); in TryCombineAndNot()
47 instruction->GetDexPc()); in TryCombineAndNot()
48 instruction->GetBlock()->ReplaceAndRemoveInstructionWith(instruction, and_not); in TryCombineAndNot()
57 bool TryGenerateResetLeastSetBit(HAnd* instruction) { in TryGenerateResetLeastSetBit() argument
58 DataType::Type type = instruction->GetType(); in TryGenerateResetLeastSetBit()
69 HInstruction* left = instruction->GetLeft(); in TryGenerateResetLeastSetBit()
[all …]
Dlocations.cc29 LocationSummary::LocationSummary(HInstruction* instruction, in LocationSummary() argument
33 : inputs_(instruction->InputCount(), allocator->Adapter(kArenaAllocLocationSummary)), in LocationSummary()
43 instruction->SetLocations(this); in LocationSummary()
50 LocationSummary::LocationSummary(HInstruction* instruction, in LocationSummary() argument
53 : LocationSummary(instruction, in LocationSummary()
56 instruction->GetBlock()->GetGraph()->GetAllocator()) {} in LocationSummary()
58 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant() argument
59 return instruction->IsConstant() in RegisterOrConstant()
60 ? Location::ConstantLocation(instruction->AsConstant()) in RegisterOrConstant()
64 Location Location::RegisterOrInt32Constant(HInstruction* instruction) { in RegisterOrInt32Constant() argument
[all …]
Dlicm.cc23 static bool IsPhiOf(HInstruction* instruction, HBasicBlock* block) { in IsPhiOf() argument
24 return instruction->IsPhi() && instruction->GetBlock() == block; in IsPhiOf()
31 static bool InputsAreDefinedBeforeLoop(HInstruction* instruction) { in InputsAreDefinedBeforeLoop() argument
32 DCHECK(instruction->IsInLoop()); in InputsAreDefinedBeforeLoop()
33 HLoopInformation* info = instruction->GetBlock()->GetLoopInformation(); in InputsAreDefinedBeforeLoop()
34 for (const HInstruction* input : instruction->GetInputs()) { in InputsAreDefinedBeforeLoop()
43 for (HEnvironment* environment = instruction->GetEnvironment(); in InputsAreDefinedBeforeLoop()
132 HInstruction* instruction = inst_it.Current(); in Run() local
134 if (instruction->CanBeMoved() && InputsAreDefinedBeforeLoop(instruction)) { in Run()
135 if (instruction->CanThrow()) { in Run()
[all …]
Dinstruction_simplifier_x86.cc43 HInstruction* instruction = it.Current(); in VisitBasicBlock() local
44 if (instruction->IsInBlock()) { in VisitBasicBlock()
45 instruction->Accept(this); in VisitBasicBlock()
50 void VisitAnd(HAnd * instruction) override;
51 void VisitXor(HXor* instruction) override;
59 void InstructionSimplifierX86Visitor::VisitAnd(HAnd* instruction) { in VisitAnd() argument
60 if (TryCombineAndNot(instruction)) { in VisitAnd()
62 } else if (instruction->GetResultType() == DataType::Type::kInt32) { in VisitAnd()
63 if (TryGenerateResetLeastSetBit(instruction)) { in VisitAnd()
69 void InstructionSimplifierX86Visitor::VisitXor(HXor* instruction) { in VisitXor() argument
[all …]
Dgraph_checker.cc39 static bool IsAllowedToJumpToExitBlock(HInstruction* instruction) { in IsAllowedToJumpToExitBlock() argument
41 if (instruction->IsReturn() || instruction->IsReturnVoid()) { in IsAllowedToJumpToExitBlock()
45 if (instruction->IsGoto() && instruction->GetPrevious() != nullptr) { in IsAllowedToJumpToExitBlock()
46 instruction = instruction->GetPrevious(); in IsAllowedToJumpToExitBlock()
48 return instruction->AlwaysThrows(); in IsAllowedToJumpToExitBlock()
359 void GraphChecker::VisitInstruction(HInstruction* instruction) { in VisitInstruction() argument
360 if (seen_ids_.IsBitSet(instruction->GetId())) { in VisitInstruction()
362 instruction->GetId())); in VisitInstruction()
364 seen_ids_.SetBit(instruction->GetId()); in VisitInstruction()
368 if (instruction->GetBlock() == nullptr) { in VisitInstruction()
[all …]
Dinstruction_builder.cc281 void HInstructionBuilder::AppendInstruction(HInstruction* instruction) { in AppendInstruction() argument
282 current_block_->AddInstruction(instruction); in AppendInstruction()
283 InitializeInstruction(instruction); in AppendInstruction()
286 void HInstructionBuilder::InsertInstructionAtTop(HInstruction* instruction) { in InsertInstructionAtTop() argument
288 current_block_->AddInstruction(instruction); in InsertInstructionAtTop()
290 current_block_->InsertInstructionBefore(instruction, current_block_->GetFirstInstruction()); in InsertInstructionAtTop()
292 InitializeInstruction(instruction); in InsertInstructionAtTop()
295 void HInstructionBuilder::InitializeInstruction(HInstruction* instruction) { in InitializeInstruction() argument
296 if (instruction->NeedsEnvironment()) { in InitializeInstruction()
301 instruction->GetDexPc(), in InitializeInstruction()
[all …]
Dload_store_analysis.h325 size_t GetArrayHeapLocation(HInstruction* instruction) const { in GetArrayHeapLocation() argument
326 DCHECK(instruction != nullptr); in GetArrayHeapLocation()
327 HInstruction* array = instruction->InputAt(0); in GetArrayHeapLocation()
328 HInstruction* index = instruction->InputAt(1); in GetArrayHeapLocation()
329 DataType::Type type = instruction->GetType(); in GetArrayHeapLocation()
331 if (instruction->IsArraySet()) { in GetArrayHeapLocation()
332 type = instruction->AsArraySet()->GetComponentType(); in GetArrayHeapLocation()
333 } else if (instruction->IsVecStore() || in GetArrayHeapLocation()
334 instruction->IsVecLoad()) { in GetArrayHeapLocation()
335 HVecOperation* vec_op = instruction->AsVecOperation(); in GetArrayHeapLocation()
[all …]
Dinstruction_simplifier_x86_64.cc43 HInstruction* instruction = it.Current(); in VisitBasicBlock() local
44 if (instruction->IsInBlock()) { in VisitBasicBlock()
45 instruction->Accept(this); in VisitBasicBlock()
50 void VisitAnd(HAnd* instruction) override;
51 void VisitXor(HXor* instruction) override;
58 void InstructionSimplifierX86_64Visitor::VisitAnd(HAnd* instruction) { in VisitAnd() argument
59 if (TryCombineAndNot(instruction)) { in VisitAnd()
61 } else if (TryGenerateResetLeastSetBit(instruction)) { in VisitAnd()
67 void InstructionSimplifierX86_64Visitor::VisitXor(HXor* instruction) { in VisitXor() argument
68 if (TryGenerateMaskUptoLeastSetBit(instruction)) { in VisitXor()
Dconstructor_fence_redundancy_elimination.cc66 void VisitInstanceFieldSet(HInstanceFieldSet* instruction) override { in VisitInstanceFieldSet() argument
67 HInstruction* value = instruction->InputAt(1); in VisitInstanceFieldSet()
68 VisitSetLocation(instruction, value); in VisitInstanceFieldSet()
71 void VisitStaticFieldSet(HStaticFieldSet* instruction) override { in VisitStaticFieldSet() argument
72 HInstruction* value = instruction->InputAt(1); in VisitStaticFieldSet()
73 VisitSetLocation(instruction, value); in VisitStaticFieldSet()
76 void VisitArraySet(HArraySet* instruction) override { in VisitArraySet() argument
77 HInstruction* value = instruction->InputAt(2); in VisitArraySet()
78 VisitSetLocation(instruction, value); in VisitArraySet()
81 void VisitDeoptimize(HDeoptimize* instruction ATTRIBUTE_UNUSED) override { in VisitDeoptimize()
[all …]
Dnodes_shared.cc30 void HDataProcWithShifterOp::GetOpInfoFromInstruction(HInstruction* instruction, in GetOpInfoFromInstruction() argument
33 DCHECK(CanFitInShifterOperand(instruction)); in GetOpInfoFromInstruction()
34 if (instruction->IsShl()) { in GetOpInfoFromInstruction()
36 *shift_amount = instruction->AsShl()->GetRight()->AsIntConstant()->GetValue(); in GetOpInfoFromInstruction()
37 } else if (instruction->IsShr()) { in GetOpInfoFromInstruction()
39 *shift_amount = instruction->AsShr()->GetRight()->AsIntConstant()->GetValue(); in GetOpInfoFromInstruction()
40 } else if (instruction->IsUShr()) { in GetOpInfoFromInstruction()
42 *shift_amount = instruction->AsUShr()->GetRight()->AsIntConstant()->GetValue(); in GetOpInfoFromInstruction()
44 DCHECK(instruction->IsTypeConversion()); in GetOpInfoFromInstruction()
45 DataType::Type result_type = instruction->AsTypeConversion()->GetResultType(); in GetOpInfoFromInstruction()
[all …]
Dinstruction_simplifier_shared.h26 inline bool CanFitInShifterOperand(HInstruction* instruction) { in CanFitInShifterOperand() argument
27 if (instruction->IsTypeConversion()) { in CanFitInShifterOperand()
28 HTypeConversion* conversion = instruction->AsTypeConversion(); in CanFitInShifterOperand()
35 return (instruction->IsShl() && instruction->AsShl()->InputAt(1)->IsIntConstant()) || in CanFitInShifterOperand()
36 (instruction->IsShr() && instruction->AsShr()->InputAt(1)->IsIntConstant()) || in CanFitInShifterOperand()
37 (instruction->IsUShr() && instruction->AsUShr()->InputAt(1)->IsIntConstant()); in CanFitInShifterOperand()
Dgraph_visualizer.cc368 void VisitParallelMove(HParallelMove* instruction) override { in VisitParallelMove() argument
369 StartAttributeStream("liveness") << instruction->GetLifetimePosition(); in VisitParallelMove()
371 for (size_t i = 0, e = instruction->NumMoves(); i < e; ++i) { in VisitParallelMove()
372 MoveOperands* move = instruction->MoveOperandsAt(i); in VisitParallelMove()
381 void VisitIntConstant(HIntConstant* instruction) override { in VisitIntConstant() argument
382 StartAttributeStream() << instruction->GetValue(); in VisitIntConstant()
385 void VisitLongConstant(HLongConstant* instruction) override { in VisitLongConstant() argument
386 StartAttributeStream() << instruction->GetValue(); in VisitLongConstant()
389 void VisitFloatConstant(HFloatConstant* instruction) override { in VisitFloatConstant() argument
390 StartAttributeStream() << instruction->GetValue(); in VisitFloatConstant()
[all …]
Dgraph_checker.h54 void VisitInstruction(HInstruction* instruction) override;
58 void VisitBooleanNot(HBooleanNot* instruction) override;
59 void VisitBoundType(HBoundType* instruction) override;
63 void VisitConstant(HConstant* instruction) override;
64 void VisitDeoptimize(HDeoptimize* instruction) override;
65 void VisitIf(HIf* instruction) override;
69 void VisitNeg(HNeg* instruction) override;
70 void VisitPackedSwitch(HPackedSwitch* instruction) override;
73 void VisitSelect(HSelect* instruction) override;
75 void VisitTypeConversion(HTypeConversion* instruction) override;
[all …]
/art/tools/veridex/
Dflow_analysis.cc94 const Instruction& instruction = pair.Inst(); in FindBranches() local
100 if (instruction.IsBranch()) { in FindBranches()
101 SetAsBranchTarget(dex_pc + instruction.GetTargetOffset()); in FindBranches()
102 } else if (instruction.IsSwitch()) { in FindBranches()
103 DexSwitchTable table(instruction, dex_pc); in FindBranches()
165 int VeriFlowAnalysis::GetBranchFlags(const Instruction& instruction) const { in GetBranchFlags()
166 switch (instruction.Opcode()) { in GetBranchFlags()
169 RegisterValue lhs = GetRegister(instruction.VRegA()); \ in GetBranchFlags()
170 RegisterValue rhs = GetRegister(instruction.VRegB()); \ in GetBranchFlags()
181 RegisterValue val = GetRegister(instruction.VRegA()); \ in GetBranchFlags()
[all …]

123456