Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(497)

Side by Side Diff: src/compiler.cc

Issue 2175233003: Replace SmartPointer<T> with unique_ptr<T> (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@smart-array
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler.h" 5 #include "src/compiler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/asmjs/asm-js.h" 10 #include "src/asmjs/asm-js.h"
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 766
767 // Reset profiler ticks, function is no longer considered hot. 767 // Reset profiler ticks, function is no longer considered hot.
768 if (shared->is_compiled()) { 768 if (shared->is_compiled()) {
769 shared->code()->set_profiler_ticks(0); 769 shared->code()->set_profiler_ticks(0);
770 } 770 }
771 771
772 VMState<COMPILER> state(isolate); 772 VMState<COMPILER> state(isolate);
773 DCHECK(!isolate->has_pending_exception()); 773 DCHECK(!isolate->has_pending_exception());
774 PostponeInterruptsScope postpone(isolate); 774 PostponeInterruptsScope postpone(isolate);
775 bool use_turbofan = UseTurboFan(shared); 775 bool use_turbofan = UseTurboFan(shared);
776 base::SmartPointer<CompilationJob> job( 776 std::unique_ptr<CompilationJob> job(
777 use_turbofan ? compiler::Pipeline::NewCompilationJob(function) 777 use_turbofan ? compiler::Pipeline::NewCompilationJob(function)
778 : new HCompilationJob(function)); 778 : new HCompilationJob(function));
779 CompilationInfo* info = job->info(); 779 CompilationInfo* info = job->info();
780 ParseInfo* parse_info = info->parse_info(); 780 ParseInfo* parse_info = info->parse_info();
781 781
782 info->SetOptimizingForOsr(osr_ast_id, osr_frame); 782 info->SetOptimizingForOsr(osr_ast_id, osr_frame);
783 783
784 // Do not use Crankshaft/TurboFan if we need to be able to set break points. 784 // Do not use Crankshaft/TurboFan if we need to be able to set break points.
785 if (info->shared_info()->HasDebugInfo()) { 785 if (info->shared_info()->HasDebugInfo()) {
786 info->AbortOptimization(kFunctionBeingDebugged); 786 info->AbortOptimization(kFunctionBeingDebugged);
(...skipping 22 matching lines...) Expand all
809 if (IsEvalToplevel(shared)) { 809 if (IsEvalToplevel(shared)) {
810 parse_info->set_eval(); 810 parse_info->set_eval();
811 if (function->context()->IsNativeContext()) parse_info->set_global(); 811 if (function->context()->IsNativeContext()) parse_info->set_global();
812 parse_info->set_toplevel(); 812 parse_info->set_toplevel();
813 parse_info->set_allow_lazy_parsing(false); 813 parse_info->set_allow_lazy_parsing(false);
814 parse_info->set_lazy(false); 814 parse_info->set_lazy(false);
815 } 815 }
816 816
817 if (mode == Compiler::CONCURRENT) { 817 if (mode == Compiler::CONCURRENT) {
818 if (GetOptimizedCodeLater(job.get())) { 818 if (GetOptimizedCodeLater(job.get())) {
819 job.Detach(); // The background recompile job owns this now. 819 job.release(); // The background recompile job owns this now.
820 return isolate->builtins()->InOptimizationQueue(); 820 return isolate->builtins()->InOptimizationQueue();
821 } 821 }
822 } else { 822 } else {
823 if (GetOptimizedCodeNow(job.get())) return info->code(); 823 if (GetOptimizedCodeNow(job.get())) return info->code();
824 } 824 }
825 825
826 if (isolate->has_pending_exception()) isolate->clear_pending_exception(); 826 if (isolate->has_pending_exception()) isolate->clear_pending_exception();
827 return MaybeHandle<Code>(); 827 return MaybeHandle<Code>();
828 } 828 }
829 829
(...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after
1809 MaybeHandle<Code> Compiler::GetOptimizedCodeForOSR(Handle<JSFunction> function, 1809 MaybeHandle<Code> Compiler::GetOptimizedCodeForOSR(Handle<JSFunction> function,
1810 BailoutId osr_ast_id, 1810 BailoutId osr_ast_id,
1811 JavaScriptFrame* osr_frame) { 1811 JavaScriptFrame* osr_frame) {
1812 DCHECK(!osr_ast_id.IsNone()); 1812 DCHECK(!osr_ast_id.IsNone());
1813 DCHECK_NOT_NULL(osr_frame); 1813 DCHECK_NOT_NULL(osr_frame);
1814 return GetOptimizedCode(function, NOT_CONCURRENT, osr_ast_id, osr_frame); 1814 return GetOptimizedCode(function, NOT_CONCURRENT, osr_ast_id, osr_frame);
1815 } 1815 }
1816 1816
1817 void Compiler::FinalizeCompilationJob(CompilationJob* raw_job) { 1817 void Compiler::FinalizeCompilationJob(CompilationJob* raw_job) {
1818 // Take ownership of compilation job. Deleting job also tears down the zone. 1818 // Take ownership of compilation job. Deleting job also tears down the zone.
1819 base::SmartPointer<CompilationJob> job(raw_job); 1819 std::unique_ptr<CompilationJob> job(raw_job);
1820 CompilationInfo* info = job->info(); 1820 CompilationInfo* info = job->info();
1821 Isolate* isolate = info->isolate(); 1821 Isolate* isolate = info->isolate();
1822 1822
1823 VMState<COMPILER> state(isolate); 1823 VMState<COMPILER> state(isolate);
1824 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate()); 1824 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
1825 RuntimeCallTimerScope runtimeTimer(isolate, 1825 RuntimeCallTimerScope runtimeTimer(isolate,
1826 &RuntimeCallStats::RecompileSynchronous); 1826 &RuntimeCallStats::RecompileSynchronous);
1827 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), 1827 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
1828 "V8.RecompileSynchronous"); 1828 "V8.RecompileSynchronous");
1829 1829
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 DCHECK(shared->is_compiled()); 1889 DCHECK(shared->is_compiled());
1890 function->set_literals(cached.literals); 1890 function->set_literals(cached.literals);
1891 } else if (shared->is_compiled()) { 1891 } else if (shared->is_compiled()) {
1892 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. 1892 // TODO(mvstanton): pass pretenure flag to EnsureLiterals.
1893 JSFunction::EnsureLiterals(function); 1893 JSFunction::EnsureLiterals(function);
1894 } 1894 }
1895 } 1895 }
1896 1896
1897 } // namespace internal 1897 } // namespace internal
1898 } // namespace v8 1898 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698