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