1c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom/* 2c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * Copyright (C) 2013 The Android Open Source Project 3c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * 4c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License"); 5c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * you may not use this file except in compliance with the License. 6c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * You may obtain a copy of the License at 7c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * 8c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * http://www.apache.org/licenses/LICENSE-2.0 9c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * 10c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * Unless required by applicable law or agreed to in writing, software 11c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS, 12c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * See the License for the specific language governing permissions and 14c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom * limitations under the License. 15c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom */ 16c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 17c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom#ifndef ART_RUNTIME_NOOP_COMPILER_CALLBACKS_H_ 18c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom#define ART_RUNTIME_NOOP_COMPILER_CALLBACKS_H_ 19c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 20c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom#include "compiler_callbacks.h" 21c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 22c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstromnamespace art { 23c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 24c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstromclass NoopCompilerCallbacks FINAL : public CompilerCallbacks { 25c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom public: 264585f876eb5dfb936bd0d6cb6acd78a1f2182ba6Andreas Gampe NoopCompilerCallbacks() : CompilerCallbacks(CompilerCallbacks::CallbackMode::kCompileApp) {} 27c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom ~NoopCompilerCallbacks() {} 28e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers 2953e32d14d7a51198c6ef09120c15bafdd1d055c2Andreas Gampe void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE { 30c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom } 31e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers 326a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866fIan Rogers void ClassRejected(ClassReference ref ATTRIBUTE_UNUSED) OVERRIDE {} 33e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers 34a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light // This is only used by compilers which need to be able to run without relocation even when it 35a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light // would normally be enabled. For example the patchoat executable, and dex2oat --image, both need 36a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light // to disable the relocation since both deal with writing out the images directly. 37a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light bool IsRelocationPossible() OVERRIDE { return false; } 38a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light 39e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers private: 40e63db27db913f1a88e2095a1ee8239b2bb9124e8Ian Rogers DISALLOW_COPY_AND_ASSIGN(NoopCompilerCallbacks); 41c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom}; 42c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 43c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom} // namespace art 44c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom 45c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690Brian Carlstrom#endif // ART_RUNTIME_NOOP_COMPILER_CALLBACKS_H_ 46