/art/compiler/optimizing/ |
D | constant_folding.cc | 109 InstructionWithAbsorbingInputSimplifier simplifier(GetGraph()); in VisitBinaryOperation() 154 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 0)); in VisitEqual() 166 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 1)); in VisitNotEqual() 178 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 0)); in VisitAbove() 190 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 1)); in VisitAboveOrEqual() 202 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 0)); in VisitBelow() 214 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kBool, 1)); in VisitBelowOrEqual() 245 instruction->ReplaceWith(GetGraph()->GetConstant(type, 0)); in VisitAnd() 264 instruction->ReplaceWith(GetGraph()->GetConstant(DataType::Type::kInt32, in VisitCompare() 336 instruction->ReplaceWith(GetGraph()->GetConstant(type, 0)); in VisitRem() [all …]
|
D | cha_guard_optimization.cc | 37 block_has_cha_guard_(GetGraph()->GetBlocks().size(), in CHAGuardVisitor() 41 number_of_guards_to_visit_ = GetGraph()->GetNumberOfCHAGuards(); in CHAGuardVisitor() 44 GetGraph()->SetNumberOfCHAGuards(0); in CHAGuardVisitor() 205 HDeoptimize* deoptimize = new (GetGraph()->GetAllocator()) HDeoptimize( in HoistGuard() 206 GetGraph()->GetAllocator(), compare, DeoptimizationKind::kCHA, suspend->GetDexPc()); in HoistGuard() 211 GetGraph()->IncrementNumberOfCHAGuards(); in HoistGuard() 241 GetGraph()->IncrementNumberOfCHAGuards(); in VisitShouldDeoptimizeFlag()
|
D | pc_relative_fixups_x86.cc | 132 HGraph* graph = GetGraph(); in VisitNeg() 151 HGraph* graph = GetGraph(); in VisitPackedSwitch() 163 bool has_irreducible_loops = GetGraph()->HasIrreducibleLoops(); in GetPCRelativeBasePointer() 173 new (GetGraph()->GetAllocator()) HX86ComputeBaseMethodAddress(); in GetPCRelativeBasePointer() 177 HBasicBlock* entry_block = GetGraph()->GetEntryBlock(); in GetPCRelativeBasePointer() 187 new (GetGraph()->GetAllocator()) HX86LoadFromConstantTable(method_address, value); in ReplaceInput()
|
D | instruction_simplifier.cc | 159 for (HBasicBlock* block : GetGraph()->GetReversePostOrder()) { in Run() 212 HNeg* neg = new (GetGraph()->GetAllocator()) HNeg(binop->GetType(), binop); in TryMoveNegOnInputsAfterBinop() 251 hbin = new (GetGraph()->GetAllocator()) HOr(type, src_left, src_right, dex_pc); in TryDeMorganNegationFactoring() 253 hbin = new (GetGraph()->GetAllocator()) HAnd(type, src_left, src_right, dex_pc); in TryDeMorganNegationFactoring() 257 hnot = new (GetGraph()->GetAllocator()) HBooleanNot(hbin, dex_pc); in TryDeMorganNegationFactoring() 259 hnot = new (GetGraph()->GetAllocator()) HNot(type, hbin, dex_pc); in TryDeMorganNegationFactoring() 289 ArenaAllocator* allocator = mul->GetBlock()->GetGraph()->GetAllocator(); in TryCombineVecMultiplyAccumulate() 371 instruction->ReplaceInput(GetGraph()->GetIntConstant(masked_cst), /* index= */ 1); in VisitShift() 423 new (GetGraph()->GetAllocator()) HRor(ushr->GetType(), ushr->GetLeft(), ushr->GetRight()); in ReplaceRotateWithRor() 671 HGraph* graph = GetGraph(); in VisitInstanceOf() [all …]
|
D | instruction_simplifier_shared.cc | 78 ArenaAllocator* allocator = mul->GetBlock()->GetGraph()->GetAllocator(); in TrySimpleMultiplyAccumulatePatterns() 108 ArenaAllocator* allocator = mul->GetBlock()->GetGraph()->GetAllocator(); in TryCombineMultiplyAccumulate() 155 mul->GetBlock()->GetGraph()->GetConstant(type, 0), in TryCombineMultiplyAccumulate() 219 HBitwiseNegatedRight* neg_op = new (hnot->GetBlock()->GetGraph()->GetAllocator()) in TryMergeNegatedInput() 257 HGraph* graph = access->GetBlock()->GetGraph(); in TryExtractArrayAccessAddress() 291 HGraph* graph = access->GetBlock()->GetGraph(); in TryExtractVecArrayAccessAddress() 342 ArenaAllocator* allocator = basic_block->GetGraph()->GetAllocator(); in TryReplaceSubSubWithSubAdd()
|
D | code_generator_vector_arm_vixl.cc | 37 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar() 80 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecExtractScalar() 131 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecReduce() 160 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecCnv() 168 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNeg() 197 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAbs() 224 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNot() 271 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 301 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecSaturationAdd() 333 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecHalvingAdd() [all …]
|
D | code_generator_vector_x86_64.cc | 29 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar() 112 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecExtractScalar() 189 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecReduce() 241 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecCnv() 259 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNeg() 306 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAbs() 347 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNot() 442 CreateVecTerOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 444 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 489 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecSaturationAdd() [all …]
|
D | code_generator_vector_x86.cc | 29 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar() 121 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecExtractScalar() 206 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecReduce() 258 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecCnv() 276 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNeg() 323 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAbs() 364 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNot() 459 CreateVecTerOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 461 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 506 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecSaturationAdd() [all …]
|
D | instruction_simplifier_x86_shared.cc | 43 ArenaAllocator* arena = instruction->GetBlock()->GetGraph()->GetAllocator(); in TryCombineAndNot() 79 ArenaAllocator* arena = instruction->GetBlock()->GetGraph()->GetAllocator(); in TryGenerateResetLeastSetBit() 112 ArenaAllocator* arena = instruction->GetBlock()->GetGraph()->GetAllocator(); in TryGenerateMaskUptoLeastSetBit()
|
D | nodes_x86.h | 145 return GetBlock()->GetGraph()->GetIntConstant( in Evaluate() 149 return GetBlock()->GetGraph()->GetLongConstant( in Evaluate() 194 return GetBlock()->GetGraph()->GetIntConstant(Compute(x->GetValue()), GetDexPc()); in Evaluate() 197 return GetBlock()->GetGraph()->GetLongConstant(Compute(x->GetValue()), GetDexPc()); in Evaluate()
|
D | bounds_check_elimination.cc | 553 if (!GetGraph()->IsCompilingOsr()) { in VisitBasicBlock() 1381 HInstruction* upper = GetGraph()->GetIntConstant(max_c); in AddCompareWithDeoptimization() 1385 HInstruction* lower = new (GetGraph()->GetAllocator()) in AddCompareWithDeoptimization() 1386 HAdd(DataType::Type::kInt32, base, GetGraph()->GetIntConstant(min_c)); in AddCompareWithDeoptimization() 1387 upper = new (GetGraph()->GetAllocator()) HAdd(DataType::Type::kInt32, base, upper); in AddCompareWithDeoptimization() 1390 InsertDeoptInBlock(bounds_check, new (GetGraph()->GetAllocator()) HAbove(lower, upper)); in AddCompareWithDeoptimization() 1393 bounds_check, new (GetGraph()->GetAllocator()) HAboveOrEqual(upper, array_length)); in AddCompareWithDeoptimization() 1440 HBasicBlock* exit = GetGraph()->GetExitBlock(); in AddComparesWithDeoptimization() 1596 other_bounds_check, other_index, GetGraph(), block, &max_lower, &max_upper); in TransformLoopForDynamicBCE() 1599 other_bounds_check, other_index, GetGraph(), block, &min_lower, &min_upper); in TransformLoopForDynamicBCE() [all …]
|
D | code_generator_vector_arm64_sve.cc | 49 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar() 142 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecExtractScalar() 217 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecReduce() 257 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecCnv() 275 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNeg() 316 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAbs() 355 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNot() 406 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 448 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecSaturationAdd() 480 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecHalvingAdd() [all …]
|
D | code_generator_vector_arm64_neon.cc | 49 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecReplicateScalar() 142 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(instruction); in VisitVecExtractScalar() 217 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecReduce() 257 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecCnv() 275 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNeg() 316 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAbs() 355 CreateVecUnOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecNot() 406 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecAdd() 448 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecSaturationAdd() 480 CreateVecBinOpLocations(GetGraph()->GetAllocator(), instruction); in VisitVecHalvingAdd() [all …]
|
D | load_store_elimination.cc | 142 !GetGraph()->HasIrreducibleLoops())) { in FindOrAddTypeConversionIfNecessary() 154 HTypeConversion* type_conversion = new (GetGraph()->GetAllocator()) HTypeConversion( in FindOrAddTypeConversionIfNecessary() 481 << "method: " << GetGraph()->GetMethodName(); in MergePredecessorValues() 525 return GetGraph()->GetNullConstant(); in GetDefaultValue() 532 return GetGraph()->GetIntConstant(0); in GetDefaultValue() 534 return GetGraph()->GetLongConstant(0); in GetDefaultValue() 536 return GetGraph()->GetFloatConstant(0); in GetDefaultValue() 538 return GetGraph()->GetDoubleConstant(0); in GetDefaultValue()
|
D | prepare_for_register_allocation.cc | 29 for (HBasicBlock* block : GetGraph()->GetReversePostOrder()) { in Run() 87 if (GetGraph()->GetArtMethod() != char_at_method) { in VisitBoundsCheck() 88 ArenaAllocator* allocator = GetGraph()->GetAllocator(); in VisitBoundsCheck()
|
D | sharpening.cc | 86 if (callee == codegen->GetGraph()->GetArtMethod() && !codegen->GetGraph()->IsDebuggable()) { in SharpenInvokeStaticOrDirect() 134 if (codegen->GetGraph()->IsDebuggable()) { in SharpenInvokeStaticOrDirect() 275 << " in " << codegen->GetGraph()->PrettyMethod(); in CanUseTypeCheckBitstring()
|
D | code_generator_arm64.cc | 326 DCHECK(IsSameDexFile(cls_->GetDexFile(), arm64_codegen->GetGraph()->GetDexFile())); in EmitNativeCode() 550 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 727 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 1100 scratch = codegen_->GetGraph()->HasSIMD() in AllocateScratchLocationFor() 1113 if (codegen_->GetGraph()->HasSIMD()) { in FreeScratchLocation() 1143 if (GetGraph()->IsCompilingBaseline() && !Runtime::Current()->IsAotCompiler()) { in MaybeIncrementHotness() 1145 ProfilingInfo* info = GetGraph()->GetArtMethod()->GetProfilingInfo(kRuntimePointerSize); in MaybeIncrementHotness() 1245 if (GetGraph()->HasShouldDeoptimizeFlag()) { in GenerateFrameEntry() 1374 if (GetGraph()->IsDebuggable()) { in SetupBlockedRegisters() 1523 if (GetGraph()->HasSIMD()) { in MoveLocation() [all …]
|
D | register_allocation_resolver.cc | 28 : allocator_(codegen->GetGraph()->GetAllocator()), in RegisterAllocationResolver() 54 codegen_->GetGraph()->GetLinearOrder()); in Resolve() 152 for (HBasicBlock* block : codegen_->GetGraph()->GetLinearOrder()) { in Resolve() 182 for (HBasicBlock* block : codegen_->GetGraph()->GetLinearOrder()) { in Resolve() 413 return instruction->GetBlock()->GetGraph()->HasIrreducibleLoops() && in IsMaterializableEntryBlockInstructionOfGraphWithIrreducibleLoop() 438 if (codegen_->GetGraph()->HasIrreducibleLoops() && in ConnectSplitSiblings() 462 if (codegen_->GetGraph()->HasIrreducibleLoops() && in ConnectSplitSiblings()
|
D | nodes.cc | 819 HGraph* graph = header_->GetGraph(); in Populate() 980 replacement->SetId(GetGraph()->GetNextInstructionId()); in ReplaceAndRemoveInstructionWith() 996 instruction->SetId(block->GetGraph()->GetNextInstructionId()); in Add() 1017 instruction->SetId(GetGraph()->GetNextInstructionId()); in InsertInstructionBefore() 1031 instruction->SetId(GetGraph()->GetNextInstructionId()); in InsertInstructionAfter() 1041 phi->SetId(GetGraph()->GetNextInstructionId()); in InsertPhiAfter() 1549 HGraph* graph = GetBlock()->GetGraph(); in TryStaticEvaluation() 1842 new (GetGraph()->GetAllocator()) HBasicBlock(GetGraph(), cursor->GetDexPc()); in SplitBefore() 1854 AddInstruction(new (GetGraph()->GetAllocator()) HGoto(new_block->GetDexPc())); in SplitBefore() 1863 GetGraph()->AddBlock(new_block); in SplitBefore() [all …]
|
D | code_generator_x86.cc | 289 DCHECK(IsSameDexFile(cls_->GetDexFile(), x86_codegen->GetGraph()->GetDexFile())); in EmitNativeCode() 424 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 821 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 988 if (GetGraph()->HasSIMD()) { in SaveFloatingPointRegister() 997 if (GetGraph()->HasSIMD()) { in RestoreFloatingPointRegister() 1099 if (GetGraph()->IsCompilingBaseline() && !Runtime::Current()->IsAotCompiler()) { in MaybeIncrementHotness() 1101 ProfilingInfo* info = GetGraph()->GetArtMethod()->GetProfilingInfo(kRuntimePointerSize); in MaybeIncrementHotness() 1178 if (GetGraph()->HasShouldDeoptimizeFlag()) { in GenerateFrameEntry() 1448 HParallelMove move(GetGraph()->GetAllocator()); in MoveLocation() 1800 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(if_instr); in VisitIf() [all …]
|
D | code_generator_x86_64.cc | 271 DCHECK(IsSameDexFile(cls_->GetDexFile(), x86_64_codegen->GetGraph()->GetDexFile())); in EmitNativeCode() 435 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 839 HParallelMove parallel_move(codegen->GetGraph()->GetAllocator()); in EmitNativeCode() 1151 method_bss_entry_patches_.emplace_back(&GetGraph()->GetDexFile(), invoke->GetDexMethodIndex()); in RecordMethodBssEntryPatch() 1304 if (GetGraph()->HasSIMD()) { in SaveFloatingPointRegister() 1313 if (GetGraph()->HasSIMD()) { in RestoreFloatingPointRegister() 1418 if (GetGraph()->IsCompilingBaseline() && !Runtime::Current()->IsAotCompiler()) { in MaybeIncrementHotness() 1420 ProfilingInfo* info = GetGraph()->GetArtMethod()->GetProfilingInfo(kRuntimePointerSize); in MaybeIncrementHotness() 1496 if (GetGraph()->HasShouldDeoptimizeFlag()) { in GenerateFrameEntry() 1889 LocationSummary* locations = new (GetGraph()->GetAllocator()) LocationSummary(if_instr); in VisitIf() [all …]
|
D | nodes.h | 1121 HGraph* GetGraph() const { return graph_; } in GetGraph() function 2129 ArenaAllocator* GetAllocator() const { return block_->GetGraph()->GetAllocator(); } in GetAllocator() 2239 new (GetBlock()->GetGraph()->GetAllocator()) HUseListNode<HInstruction*>(user, index); in AddUseAt() 2249 new (GetBlock()->GetGraph()->GetAllocator()) HUseListNode<HEnvironment*>(user, index); in AddEnvUseAt() 2332 ArenaAllocator* allocator = GetBlock()->GetGraph()->GetAllocator(); in CopyEnvironmentFrom() 2343 ArenaAllocator* allocator = GetBlock()->GetGraph()->GetAllocator(); in CopyEnvironmentFromWithLoopPhiAdjustment() 3764 return GetBlock()->GetGraph()->GetIntConstant(value, dex_pc); in MakeConstantCondition() 4272 return GetBlock()->GetGraph()->GetIntConstant(value, dex_pc); in MakeConstantComparison() 4670 DCHECK_EQ(InputAt(GetCurrentMethodIndex()), GetBlock()->GetGraph()->GetCurrentMethod()); in SetDispatchInfo() 4969 return GetBlock()->GetGraph()->GetIntConstant(Compute(x->GetValue()), GetDexPc()); in Evaluate() [all …]
|
D | code_generator.cc | 391 GetGraph()->GetNumberOfVRegs(), in Compile() 392 GetGraph()->IsCompilingBaseline()); in Compile() 471 DCHECK(block_order[0] == GetGraph()->GetEntryBlock()); in InitializeCodeGeneration() 486 + (GetGraph()->HasShouldDeoptimizeFlag() ? kShouldDeoptimizeFlagSize : 0) in InitializeCodeGeneration() 494 ArenaAllocator* allocator = invoke->GetBlock()->GetGraph()->GetAllocator(); in CreateCommonInvokeLocationSummary() 649 ArenaAllocator* allocator = GetGraph()->GetAllocator(); in CreateStringBuilderAppendLocations() 707 ArenaAllocator* allocator = field_access->GetBlock()->GetGraph()->GetAllocator(); in CreateUnresolvedFieldLocationSummary() 828 LocationSummary* locations = new (cls->GetBlock()->GetGraph()->GetAllocator()) LocationSummary( in CreateLoadClassRuntimeCallLocationSummary() 855 new (method_handle->GetBlock()->GetGraph()->GetAllocator()) LocationSummary( in CreateLoadMethodHandleRuntimeCallLocationSummary() 875 new (method_type->GetBlock()->GetGraph()->GetAllocator()) LocationSummary( in CreateLoadMethodTypeRuntimeCallLocationSummary() [all …]
|
D | nodes_shared.h | 101 return GetBlock()->GetGraph()->GetIntConstant( in Evaluate() 105 return GetBlock()->GetGraph()->GetLongConstant( in Evaluate()
|
D | instruction_simplifier_arm64.cc | 111 left = GetGraph()->GetConstant(right->GetType(), 0); in TryMergeIntoShifterOperand() 144 new (GetGraph()->GetAllocator()) HDataProcWithShifterOp(use, in TryMergeIntoShifterOperand()
|