Home | History | Annotate | Download | only in src

Lines Matching defs:info

183 static bool MakeCrankshaftCode(CompilationInfo* info) {
187 info->DisableOptimization();
192 if (!info->IsOptimizing()) {
193 return FullCodeGenerator::MakeCode(info);
198 Handle<Code> code(info->shared_info()->code());
202 // shared function info.
203 ASSERT(!info->shared_info()->optimization_disabled());
209 info->SetCode(code);
217 if (info->shared_info()->opt_count() > kMaxOptCount) {
218 info->AbortOptimization();
219 info->shared_info()->DisableOptimization();
234 Scope* scope = info->scope();
236 (info->osr_ast_id() != AstNode::kNoNumber &&
238 info->AbortOptimization();
239 info->shared_info()->DisableOptimization();
246 Handle<String> name = info->function()->debug_name();
252 info->SetCode(code);
262 bool should_recompile = !info->shared_info()->has_deoptimization_support();
265 CompilationInfo unoptimized(info->shared_info());
268 unoptimized.SetFunction(info->function());
269 unoptimized.SetScope(info->scope());
274 Handle<SharedFunctionInfo> shared = info->shared_info();
288 ASSERT(info->shared_info()->has_deoptimization_support());
293 HTracer::Instance()->TraceCompilation(info->function());
296 Handle<Context> global_context(info->closure()->context()->global_context());
297 TypeFeedbackOracle oracle(code, global_context, info->isolate());
298 HGraphBuilder builder(info, &oracle);
301 if (info->isolate()->has_pending_exception()) {
302 info->SetCode(Handle<Code>::null());
307 Handle<Code> optimized_code = graph->Compile(info);
309 info->SetCode(optimized_code);
310 FinishOptimization(info->closure(), start);
316 info->AbortOptimization();
320 info->shared_info()->DisableOptimization();
328 static bool GenerateCode(CompilationInfo* info) {
329 return info->IsCompilingForDebugging() || !V8::UseCrankshaft() ?
330 FullCodeGenerator::MakeCode(info) :
331 MakeCrankshaftCode(info);
335 static bool MakeCode(CompilationInfo* info) {
337 // the compilation info is set if compilation succeeded.
338 ASSERT(info->function() != NULL);
339 return Rewriter::Rewrite(info) && Scope::Analyze(info) && GenerateCode(info);
344 bool Compiler::MakeCodeForLiveEdit(CompilationInfo* info) {
346 // the compilation info is set if compilation succeeded.
347 bool succeeded = MakeCode(info);
348 if (!info->shared_info().is_null()) {
349 Handle<ScopeInfo> scope_info = ScopeInfo::Create(info->scope());
350 info->shared_info()->set_scope_info(*scope_info);
357 static Handle<SharedFunctionInfo> MakeFunctionInfo(CompilationInfo* info) {
358 Isolate* isolate = info->isolate();
363 Handle<Script> script = info->script();
367 if (info->is_eval()) {
372 if (info->is_eval()) {
390 ASSERT(info->is_eval() || info->is_global());
392 if (info->pre_parse_data() != NULL ||
396 if (!ParserApi::Parse(info, flags)) {
403 HistogramTimer* rate = info->is_eval()
404 ? info->isolate()->counters()->compile_eval()
405 : info->isolate()->counters()->compile();
409 FunctionLiteral* lit = info->function();
411 if (!MakeCode(info)) {
417 ASSERT(!info->code().is_null());
422 info->code(),
423 ScopeInfo::Create(info->scope()));
430 info->is_eval()
433 *info->code(),
438 info->code(),
439 info));
442 info->is_eval()
445 *info->code(),
448 GDBJIT(AddCode(Handle<String>(), script, info->code(), info));
523 CompilationInfo info(script);
524 info.MarkAsGlobal();
525 info.SetExtension(extension);
526 info.SetPreParseData(pre_data);
528 info.SetLanguageMode(FLAG_harmony_scoping ? EXTENDED_MODE : STRICT_MODE);
530 result = MakeFunctionInfo(&info);
571 CompilationInfo info(script);
572 info.MarkAsEval();
573 if (is_global) info.MarkAsGlobal();
574 info.SetLanguageMode(language_mode);
575 info.SetCallingContext(context);
576 result = MakeFunctionInfo(&info);
603 bool Compiler::CompileLazy(CompilationInfo* info) {
604 Isolate* isolate = info->isolate();
613 Handle<SharedFunctionInfo> shared = info->shared_info();
618 if (ParserApi::Parse(info, kNoParsingFlags)) {
625 LanguageMode language_mode = info->function()->language_mode();
626 info->SetLanguageMode(language_mode);
630 if (!MakeCode(info)) {
635 ASSERT(!info->code().is_null());
636 Handle<Code> code = info->code();
638 // function info, e.g., we might have flushed the code and must
642 Handle<JSFunction> function = info->closure();
643 RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info, shared);
645 if (info->IsOptimizing()) {
649 // Update the shared function info with the compiled code and the
650 // scope info. Please note, that the order of the shared function
651 // info initialization is important since set_scope_info might
654 Handle<ScopeInfo> scope_info = ScopeInfo::Create(info->scope());
663 FunctionLiteral* lit = info->function();
700 ASSERT(info->code().is_null());
708 CompilationInfo info(script);
709 info.SetFunction(literal);
710 info.SetScope(literal->scope());
711 info.SetLanguageMode(literal->scope()->language_mode());
713 LiveEditFunctionTracker live_edit_tracker(info.isolate(), literal);
720 !LiveEditFunctionTracker::IsActive(info.isolate());
726 Handle<Code> code = info.isolate()->builtins()->LazyCompile();
727 info.SetCode(code);
728 } else if ((V8::UseCrankshaft() && MakeCrankshaftCode(&info)) ||
729 (!V8::UseCrankshaft() && FullCodeGenerator::MakeCode(&info))) {
730 ASSERT(!info.code().is_null());
731 scope_info = ScopeInfo::Create(info.scope());
736 // Create a shared function info object.
740 info.code(),
743 RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, result);
755 // Sets the function info on a function.
788 CompilationInfo* info,
796 if (info->isolate()->logger()->is_logging() ||
797 CpuProfiler::is_profiling(info->isolate())) {
798 Handle<Script> script = info->script();
799 Handle<Code> code = info->code();
800 if (*code == info->isolate()->builtins()->builtin(Builtins::kLazyCompile))
805 PROFILE(info->isolate(),
812 PROFILE(info->isolate(),
821 Handle<Script>(info->script()),
822 Handle<Code>(info->code()),
823 info));