Revision: 9942
Author: [email protected]
Date: Wed Nov 9 07:44:13 2011
Log: Get rid of CodeStub::TryGetCode.
This function is no longer needed. It was only used (overly defensively)
when fetching the stack check stub for on-stack replacement patching.
[email protected]
BUG=
TEST=
Review URL: http://codereview.chromium.org/8510013
http://code.google.com/p/v8/source/detail?r=9942
Modified:
/branches/bleeding_edge/src/arm/code-stubs-arm.h
/branches/bleeding_edge/src/code-stubs.cc
/branches/bleeding_edge/src/code-stubs.h
/branches/bleeding_edge/src/ia32/code-stubs-ia32.h
/branches/bleeding_edge/src/mips/code-stubs-mips.h
/branches/bleeding_edge/src/runtime-profiler.cc
/branches/bleeding_edge/src/x64/code-stubs-x64.h
=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.h Fri Oct 28 05:37:29
2011
+++ /branches/bleeding_edge/src/arm/code-stubs-arm.h Wed Nov 9 07:44:13
2011
@@ -584,13 +584,6 @@
RememberedSetActionBits::encode(remembered_set_action_) |
SaveFPRegsModeBits::encode(save_fp_regs_mode_);
}
-
- bool MustBeInStubCache() {
- // All stubs must be registered in the stub cache
- // otherwise IncrementalMarker would not be able to find
- // and patch it.
- return true;
- }
void Activate(Code* code) {
code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code);
=======================================
--- /branches/bleeding_edge/src/code-stubs.cc Thu Oct 20 05:36:45 2011
+++ /branches/bleeding_edge/src/code-stubs.cc Wed Nov 9 07:44:13 2011
@@ -137,47 +137,6 @@
ASSERT(!NeedsImmovableCode() || heap->lo_space()->Contains(code));
return Handle<Code>(code, isolate);
}
-
-
-MaybeObject* CodeStub::TryGetCode() {
- Code* code;
- if (!FindCodeInCache(&code)) {
- // Generate the new code.
- MacroAssembler masm(Isolate::Current(), NULL, 256);
- GenerateCode(&masm);
- Heap* heap = masm.isolate()->heap();
-
- // Create the code object.
- CodeDesc desc;
- masm.GetCode(&desc);
-
- // Try to copy the generated code into a heap object.
- Code::Flags flags = Code::ComputeFlags(
- static_cast<Code::Kind>(GetCodeKind()),
- GetICState());
- Object* new_object;
- { MaybeObject* maybe_new_object =
- heap->CreateCode(desc, flags, masm.CodeObject());
- if (!maybe_new_object->ToObject(&new_object)) return
maybe_new_object;
- }
- code = Code::cast(new_object);
- RecordCodeGeneration(code, &masm);
- FinishCode(code);
-
- // Try to update the code cache but do not fail if unable.
- MaybeObject* maybe_new_object =
- heap->code_stubs()->AtNumberPut(GetKey(), code);
- if (maybe_new_object->ToObject(&new_object)) {
- heap->public_set_code_stubs(NumberDictionary::cast(new_object));
- } else if (MustBeInStubCache()) {
- return maybe_new_object;
- }
-
- Activate(code);
- }
-
- return code;
-}
const char* CodeStub::MajorName(CodeStub::Major major_key,
=======================================
--- /branches/bleeding_edge/src/code-stubs.h Wed Nov 9 06:47:12 2011
+++ /branches/bleeding_edge/src/code-stubs.h Wed Nov 9 07:44:13 2011
@@ -118,11 +118,6 @@
// Retrieve the code for the stub. Generate the code if needed.
Handle<Code> GetCode();
- // Retrieve the code for the stub if already generated. Do not
- // generate the code if not already generated and instead return a
- // retry after GC Failure object.
- MUST_USE_RESULT MaybeObject* TryGetCode();
-
static Major MajorKeyFromKey(uint32_t key) {
return static_cast<Major>(MajorKeyBits::decode(key));
}
@@ -159,15 +154,15 @@
// GC or if we try to put a stack frame on top of the junk, which would
not
// result in a traversable stack.
virtual bool SometimesSetsUpAFrame() { return true; }
+
+ // Lookup the code in the (possibly custom) cache.
+ bool FindCodeInCache(Code** code_out);
protected:
static const int kMajorBits = 6;
static const int kMinorBits = kBitsPerInt - kSmiTagSize - kMajorBits;
private:
- // Lookup the code in the (possibly custom) cache.
- bool FindCodeInCache(Code** code_out);
-
// Nonvirtual wrapper around the stub-specific Generate function. Call
// this function to set up the macro assembler and generate the code.
void GenerateCode(MacroAssembler* masm);
@@ -181,10 +176,6 @@
// Finish the code object after it has been generated.
virtual void FinishCode(Code* code) { }
-
- // Returns true if TryGetCode should fail if it failed
- // to register newly generated stub in the stub cache.
- virtual bool MustBeInStubCache() { return false; }
// Activate newly generated stub. Is called after
// registering stub in the stub cache.
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.h Fri Oct 28 05:37:29
2011
+++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.h Wed Nov 9 07:44:13
2011
@@ -710,13 +710,6 @@
RememberedSetActionBits::encode(remembered_set_action_) |
SaveFPRegsModeBits::encode(save_fp_regs_mode_);
}
-
- bool MustBeInStubCache() {
- // All stubs must be registered in the stub cache
- // otherwise IncrementalMarker would not be able to find
- // and patch it.
- return true;
- }
void Activate(Code* code) {
code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code);
=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.h Mon Oct 31 05:36:11
2011
+++ /branches/bleeding_edge/src/mips/code-stubs-mips.h Wed Nov 9 07:44:13
2011
@@ -585,13 +585,6 @@
RememberedSetActionBits::encode(remembered_set_action_) |
SaveFPRegsModeBits::encode(save_fp_regs_mode_);
}
-
- bool MustBeInStubCache() {
- // All stubs must be registered in the stub cache
- // otherwise IncrementalMarker would not be able to find
- // and patch it.
- return true;
- }
void Activate(Code* code) {
code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code);
=======================================
--- /branches/bleeding_edge/src/runtime-profiler.cc Mon Oct 3 04:13:20 2011
+++ /branches/bleeding_edge/src/runtime-profiler.cc Wed Nov 9 07:44:13 2011
@@ -136,14 +136,13 @@
// Get the stack check stub code object to match against. We aren't
// prepared to generate it, but we don't expect to have to.
StackCheckStub check_stub;
- Object* check_code;
- MaybeObject* maybe_check_code = check_stub.TryGetCode();
- if (maybe_check_code->ToObject(&check_code)) {
+ Code* stack_check_code = NULL;
+ if (check_stub.FindCodeInCache(&stack_check_code)) {
Code* replacement_code =
isolate_->builtins()->builtin(Builtins::kOnStackReplacement);
Code* unoptimized_code = shared->code();
Deoptimizer::PatchStackCheckCode(unoptimized_code,
- Code::cast(check_code),
+ stack_check_code,
replacement_code);
}
}
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.h Fri Oct 28 05:37:29
2011
+++ /branches/bleeding_edge/src/x64/code-stubs-x64.h Wed Nov 9 07:44:13
2011
@@ -692,13 +692,6 @@
RememberedSetActionBits::encode(remembered_set_action_) |
SaveFPRegsModeBits::encode(save_fp_regs_mode_);
}
-
- bool MustBeInStubCache() {
- // All stubs must be registered in the stub cache
- // otherwise IncrementalMarker would not be able to find
- // and patch it.
- return true;
- }
void Activate(Code* code) {
code->GetHeap()->incremental_marking()->ActivateGeneratedStub(code);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev