diff options
| author | 2015-04-24 22:35:49 +0000 | |
|---|---|---|
| committer | 2015-04-24 22:35:50 +0000 | |
| commit | 93cf23f9966cdbe88650b822ad8471284a21bacb (patch) | |
| tree | f4350840bf7515a26ef8101db8de4be2ad950b7a /compiler/optimizing/nodes.h | |
| parent | 76f1413492c228bfa710e1eaa4c60370eaffbb8a (diff) | |
| parent | 0379f82393237798616d485ad99952e73e480e12 (diff) | |
Merge "Fix DCHECKs about clinit checks in Optimizing's code generators."
Diffstat (limited to 'compiler/optimizing/nodes.h')
| -rw-r--r-- | compiler/optimizing/nodes.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 6b9d72ddf6..946091f70d 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -2262,16 +2262,15 @@ class HInvokeStaticOrDirect : public HInvoke { return GetInvokeType() == kStatic; } - // Remove the art::HLoadClass instruction set as last input by - // art::PrepareForRegisterAllocation::VisitClinitCheck in lieu of - // the initial art::HClinitCheck instruction (only relevant for - // static calls with explicit clinit check). - void RemoveLoadClassAsLastInput() { + // Remove the art::HClinitCheck or art::HLoadClass instruction as + // last input (only relevant for static calls with explicit clinit + // check). + void RemoveClinitCheckOrLoadClassAsLastInput() { DCHECK(IsStaticWithExplicitClinitCheck()); size_t last_input_index = InputCount() - 1; HInstruction* last_input = InputAt(last_input_index); DCHECK(last_input != nullptr); - DCHECK(last_input->IsLoadClass()) << last_input->DebugName(); + DCHECK(last_input->IsClinitCheck() || last_input->IsLoadClass()) << last_input->DebugName(); RemoveAsUserOfInput(last_input_index); inputs_.DeleteAt(last_input_index); clinit_check_requirement_ = ClinitCheckRequirement::kImplicit; |