Lines Matching refs:Deoptimizer
32 #include "deoptimizer.h"
44 return allocator->AllocateChunk(Deoptimizer::GetMaxDeoptTableSize(),
63 for (int i = 0; i < Deoptimizer::kBailoutTypesWithCodeEntry; ++i) {
71 for (int i = 0; i < Deoptimizer::kBailoutTypesWithCodeEntry; ++i) {
87 Code* Deoptimizer::FindDeoptimizingCode(Address addr) {
105 Deoptimizer* Deoptimizer::New(JSFunction* function,
111 Deoptimizer* deoptimizer = new Deoptimizer(isolate,
119 isolate->deoptimizer_data()->current_ = deoptimizer;
120 return deoptimizer;
128 size_t Deoptimizer::GetMaxDeoptTableSize() {
130 Deoptimizer::kMaxNumberOfEntries * Deoptimizer::table_entry_size_;
138 Deoptimizer* Deoptimizer::Grab(Isolate* isolate) {
139 Deoptimizer* result = isolate->deoptimizer_data()->current_;
147 int Deoptimizer::ConvertJSFrameIndexToFrameIndex(int jsframe_index) {
164 DeoptimizedFrameInfo* Deoptimizer::DebuggerInspectableFrame(
187 Deoptimizer* deoptimizer = new Deoptimizer(isolate,
189 Deoptimizer::DEBUGGER,
195 deoptimizer->FillInputFrame(tos, frame);
198 Deoptimizer::ComputeOutputFrames(deoptimizer);
202 ASSERT_LT(jsframe_index, deoptimizer->jsframe_count());
205 int frame_index = deoptimizer->ConvertJSFrameIndexToFrameIndex(jsframe_index);
209 deoptimizer->output_[frame_index - 1]->GetFrameType() ==
215 deoptimizer->output_[frame_index - construct_offset]->GetFrameType() ==
218 DeoptimizedFrameInfo* info = new DeoptimizedFrameInfo(deoptimizer,
226 deoptimizer->output_[
236 deoptimizer->output_[frame_index]->GetTop());
239 deoptimizer->DeleteFrameDescriptions();
242 deoptimizer->MaterializeHeapNumbersForDebuggerInspectableFrame(
245 // Finished using the deoptimizer instance.
246 delete deoptimizer;
252 void Deoptimizer::DeleteDebuggerInspectableFrame(DeoptimizedFrameInfo* info,
260 void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm,
268 void Deoptimizer::VisitAllOptimizedFunctionsForContext(
312 void Deoptimizer::VisitAllOptimizedFunctions(
329 void Deoptimizer::DeoptimizeMarkedCodeForContext(Context* context) {
349 PrintF(scope.file(), "[deoptimizer unlinked: ");
413 void Deoptimizer::DeoptimizeAll(Isolate* isolate) {
430 void Deoptimizer::DeoptimizeMarkedCode(Isolate* isolate) {
446 void Deoptimizer::DeoptimizeGlobalObject(JSObject* object) {
466 void Deoptimizer::MarkAllCodeForContext(Context* context) {
477 void Deoptimizer::DeoptimizeFunction(JSFunction* function) {
489 void Deoptimizer::ComputeOutputFrames(Deoptimizer* deoptimizer) {
490 deoptimizer->DoComputeOutputFrames();
494 bool Deoptimizer::TraceEnabledFor(BailoutType deopt_type,
510 const char* Deoptimizer::MessageFor(BailoutType type) {
522 Deoptimizer::Deoptimizer(Isolate* isolate,
559 if (bailout_type_ == Deoptimizer::SOFT) {
592 Code* Deoptimizer::FindOptimizedCode(JSFunction* function,
595 case Deoptimizer::SOFT:
596 case Deoptimizer::EAGER:
597 case Deoptimizer::LAZY: {
603 case Deoptimizer::DEBUGGER:
612 void Deoptimizer::PrintFunctionName() {
622 Deoptimizer::~Deoptimizer() {
629 void Deoptimizer::DeleteFrameDescriptions() {
646 Address Deoptimizer::GetDeoptimizationEntry(Isolate* isolate,
664 int Deoptimizer::GetDeoptimizationId(Isolate* isolate,
681 int Deoptimizer::GetOutputInfo(DeoptimizationOutputData* data,
706 int Deoptimizer::GetDeoptimizedCodeCount(Isolate* isolate) {
727 void Deoptimizer::DoComputeOutputFrames() {
843 void Deoptimizer::DoComputeJSFrame(TranslationIterator* iterator,
1036 void Deoptimizer::DoComputeArgumentsAdaptorFrame(TranslationIterator* iterator,
1143 void Deoptimizer::DoComputeConstructStubFrame(TranslationIterator* iterator,
1293 void Deoptimizer::DoComputeAccessorStubFrame(TranslationIterator* iterator,
1420 void Deoptimizer::DoComputeCompiledStubFrame(TranslationIterator* iterator,
1659 Handle<Object> Deoptimizer::MaterializeNextHeapObject() {
1742 Handle<Object> Deoptimizer::MaterializeNextValue() {
1752 void Deoptimizer::MaterializeHeapObjects(JavaScriptFrameIterator* it) {
1848 void Deoptimizer::MaterializeHeapNumbersForDebuggerInspectableFrame(
1912 void Deoptimizer::DoTranslateObject(TranslationIterator* iterator,
2172 void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator,
2456 unsigned Deoptimizer::ComputeInputFrameSize() const {
2473 unsigned Deoptimizer::ComputeFixedSize(JSFunction* function) const {
2481 unsigned Deoptimizer::ComputeIncomingArgumentSize(JSFunction* function) const {
2493 unsigned Deoptimizer::ComputeOutgoingArgumentSize() const {
2501 Object* Deoptimizer::ComputeLiteral(int index) const {
2509 void Deoptimizer::AddObjectStart(intptr_t slot, int length, bool is_args) {
2516 void Deoptimizer::AddObjectDuplication(intptr_t slot, int object_index) {
2523 void Deoptimizer::AddObjectTaggedValue(intptr_t value) {
2528 void Deoptimizer::AddObjectDoubleValue(double value) {
2536 void Deoptimizer::AddDoubleValue(intptr_t slot_address, double value) {
2543 void Deoptimizer::EnsureCodeForDeoptimizationEntry(Isolate* isolate,
2548 // references. This is fine because the deoptimizer's code section
2554 entry_count = Max(entry_count, Deoptimizer::kMinNumberOfEntries);
2556 ASSERT(entry_count <= Deoptimizer::kMaxNumberOfEntries);
2566 ASSERT(static_cast<int>(Deoptimizer::GetMaxDeoptTableSize()) >=
3019 DeoptimizedFrameInfo::DeoptimizedFrameInfo(Deoptimizer* deoptimizer,
3023 FrameDescription* output_frame = deoptimizer->output_[frame_index];
3030 Code* code = Code::cast(deoptimizer->isolate()->FindCodeObject(pc));
3038 output_frame = deoptimizer->output_[frame_index - 1];