summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.h
diff options
context:
space:
mode:
author David Brazdil <dbrazdil@google.com> 2015-09-15 12:34:35 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-09-15 12:34:35 +0000
commitb505997b2176bd29a108cb6c33d06d4ef29ba001 (patch)
tree05316a1837f77729f87b4fe25bfa7eb2b9e9549c /compiler/optimizing/code_generator.h
parent5c1a3374adff0d5c6c8e2248fffd7549eb3a6bae (diff)
parent77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23 (diff)
Merge "Revert "Revert "ART: Register allocation and runtime support for try/catch"""
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r--compiler/optimizing/code_generator.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index b3c4d727e0..a93d07ad50 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -237,6 +237,17 @@ class CodeGenerator {
bool CanMoveNullCheckToUser(HNullCheck* null_check);
void MaybeRecordImplicitNullCheck(HInstruction* instruction);
+ // Records a stack map which the runtime might use to set catch phi values
+ // during exception delivery.
+ // TODO: Replace with a catch-entering instruction that records the environment.
+ void RecordCatchBlockInfo();
+
+ // Returns true if implicit null checks are allowed in the compiler options
+ // and if the null check is not inside a try block. We currently cannot do
+ // implicit null checks in that case because we need the NullCheckSlowPath to
+ // save live registers, which may be needed by the runtime to set catch phis.
+ bool IsImplicitNullCheckAllowed(HNullCheck* null_check) const;
+
void AddSlowPath(SlowPathCode* slow_path) {
slow_paths_.Add(slow_path);
}