Eliminate unnecessary depencencies in some header files.
1. Eliminate unnecessary include of register-allocator-inl.h in frame-element.h. 2. Move functions register-allocator.h to the -inl.h file if they use other inline functions. 3. Add missing includes that resulted from the above changes. Review URL: http://codereview.chromium.org/585009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
e7fbf99b17
commit
4acaded36c
@ -28,8 +28,10 @@
|
||||
#ifndef V8_COMPILER_H_
|
||||
#define V8_COMPILER_H_
|
||||
|
||||
#include "ast.h"
|
||||
#include "frame-element.h"
|
||||
#include "parser.h"
|
||||
#include "register-allocator.h"
|
||||
#include "zone.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "arguments.h"
|
||||
#include "bootstrapper.h"
|
||||
#include "code-stubs.h"
|
||||
#include "codegen.h"
|
||||
#include "compilation-cache.h"
|
||||
#include "compiler.h"
|
||||
#include "debug.h"
|
||||
|
@ -28,7 +28,7 @@
|
||||
#ifndef V8_FRAME_ELEMENT_H_
|
||||
#define V8_FRAME_ELEMENT_H_
|
||||
|
||||
#include "register-allocator-inl.h"
|
||||
#include "macro-assembler.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -48,6 +48,20 @@
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
Result::Result(const Result& other) {
|
||||
other.CopyTo(this);
|
||||
}
|
||||
|
||||
|
||||
Result& Result::operator=(const Result& other) {
|
||||
if (this != &other) {
|
||||
Unuse();
|
||||
other.CopyTo(this);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
Result::~Result() {
|
||||
if (is_register()) {
|
||||
CodeGeneratorScope::Current()->allocator()->Unuse(reg());
|
||||
@ -71,6 +85,25 @@ void Result::CopyTo(Result* destination) const {
|
||||
}
|
||||
|
||||
|
||||
bool RegisterAllocator::is_used(Register reg) {
|
||||
return registers_.is_used(ToNumber(reg));
|
||||
}
|
||||
|
||||
|
||||
int RegisterAllocator::count(Register reg) {
|
||||
return registers_.count(ToNumber(reg));
|
||||
}
|
||||
|
||||
|
||||
void RegisterAllocator::Use(Register reg) {
|
||||
registers_.Use(ToNumber(reg));
|
||||
}
|
||||
|
||||
|
||||
void RegisterAllocator::Unuse(Register reg) {
|
||||
registers_.Unuse(ToNumber(reg));
|
||||
}
|
||||
|
||||
} } // namespace v8::internal
|
||||
|
||||
#endif // V8_REGISTER_ALLOCATOR_INL_H_
|
||||
|
@ -75,17 +75,9 @@ class Result BASE_EMBEDDED {
|
||||
|
||||
// The copy constructor and assignment operators could each create a new
|
||||
// register reference.
|
||||
Result(const Result& other) {
|
||||
other.CopyTo(this);
|
||||
}
|
||||
inline Result(const Result& other);
|
||||
|
||||
Result& operator=(const Result& other) {
|
||||
if (this != &other) {
|
||||
Unuse();
|
||||
other.CopyTo(this);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
inline Result& operator=(const Result& other);
|
||||
|
||||
inline ~Result();
|
||||
|
||||
@ -237,18 +229,18 @@ class RegisterAllocator BASE_EMBEDDED {
|
||||
|
||||
// Predicates and accessors for the registers' reference counts.
|
||||
bool is_used(int num) { return registers_.is_used(num); }
|
||||
bool is_used(Register reg) { return registers_.is_used(ToNumber(reg)); }
|
||||
inline bool is_used(Register reg);
|
||||
|
||||
int count(int num) { return registers_.count(num); }
|
||||
int count(Register reg) { return registers_.count(ToNumber(reg)); }
|
||||
inline int count(Register reg);
|
||||
|
||||
// Explicitly record a reference to a register.
|
||||
void Use(int num) { registers_.Use(num); }
|
||||
void Use(Register reg) { registers_.Use(ToNumber(reg)); }
|
||||
inline void Use(Register reg);
|
||||
|
||||
// Explicitly record that a register will no longer be used.
|
||||
void Unuse(int num) { registers_.Unuse(num); }
|
||||
void Unuse(Register reg) { registers_.Unuse(ToNumber(reg)); }
|
||||
inline void Unuse(Register reg);
|
||||
|
||||
// Reset the register reference counts to free all non-reserved registers.
|
||||
void Reset() { registers_.Reset(); }
|
||||
|
Loading…
Reference in New Issue
Block a user