summaryrefslogtreecommitdiff
path: root/compiler/optimizing/builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r--compiler/optimizing/builder.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h
index 580769e0f9..a59e78285f 100644
--- a/compiler/optimizing/builder.h
+++ b/compiler/optimizing/builder.h
@@ -46,7 +46,7 @@ class HGraphBuilder : public ValueObject {
const CodeItemDebugInfoAccessor& accessor,
DataType::Type return_type = DataType::Type::kInt32);
- GraphAnalysisResult BuildGraph();
+ GraphAnalysisResult BuildGraph(bool build_for_inline = false);
void BuildIntrinsicGraph(ArtMethod* method);
static constexpr const char* kBuilderPassName = "builder";
@@ -54,6 +54,10 @@ class HGraphBuilder : public ValueObject {
private:
bool SkipCompilation(size_t number_of_branches);
+ // When inlining, we sometimes want to add an extra Goto block before the Exit block. This is done
+ // in the building phase as we do not allow the inlining phase to add new instructions.
+ void MaybeAddExtraGotoBlocks();
+
HGraph* const graph_;
const DexFile* const dex_file_;
const CodeItemDebugInfoAccessor code_item_accessor_; // null for intrinsic graph.