From 76d519b039fcdebf58e05dd42df4dc6cc08251e5 Mon Sep 17 00:00:00 2001 From: Santiago Aboy Solanes Date: Mon, 3 Apr 2023 12:34:45 +0100 Subject: Inline unimplemented intrinsics There are intrinsics that are unimplemented i.e. we didn't hand-craft code for them. Allow the inliner to inline those. Since our optimizations expect InvokeVirtual, I stopped the de-virtualization of intrinsics. That could be re-added if we modify optimizations like TryReplaceStringBuilderAppend. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: art/test/testrunner/testrunner.py --target --64 --optimizing Test: compiling the APK in the bug and seeing the inline Bug: 262585898 Fixes: 262585898 Change-Id: I501b69c4ffd9082ca8ffacb1cd1cd5d1ab3668a8 --- compiler/optimizing/code_generator.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'compiler/optimizing/code_generator.cc') diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index c1bc32aa1e..c9f42b52f5 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -1055,7 +1055,8 @@ CodeGenerator::CodeGenerator(HGraph* graph, uint32_t core_callee_save_mask, uint32_t fpu_callee_save_mask, const CompilerOptions& compiler_options, - OptimizingCompilerStats* stats) + OptimizingCompilerStats* stats, + const art::ArrayRef& unimplemented_intrinsics) : frame_size_(0), core_spill_mask_(0), fpu_spill_mask_(0), @@ -1080,7 +1081,8 @@ CodeGenerator::CodeGenerator(HGraph* graph, is_leaf_(true), needs_suspend_check_entry_(false), requires_current_method_(false), - code_generation_data_() { + code_generation_data_(), + unimplemented_intrinsics_(unimplemented_intrinsics) { if (GetGraph()->IsCompilingOsr()) { // Make OSR methods have all registers spilled, this simplifies the logic of // jumping to the compiled code directly. -- cgit v1.2.3-59-g8ed1b