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

Side by Side Diff: src/hydrogen.cc

Issue 9844002: Implement rudimentary module linking. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2672 matching lines...) Expand 10 before | Expand all | Expand 10 after
2683 header->SetInitialEnvironment(entry_env); 2683 header->SetInitialEnvironment(entry_env);
2684 header->AttachLoopInformation(); 2684 header->AttachLoopInformation();
2685 return header; 2685 return header;
2686 } 2686 }
2687 2687
2688 2688
2689 void HGraphBuilder::VisitBlock(Block* stmt) { 2689 void HGraphBuilder::VisitBlock(Block* stmt) {
2690 ASSERT(!HasStackOverflow()); 2690 ASSERT(!HasStackOverflow());
2691 ASSERT(current_block() != NULL); 2691 ASSERT(current_block() != NULL);
2692 ASSERT(current_block()->HasPredecessor()); 2692 ASSERT(current_block()->HasPredecessor());
2693 if (stmt->block_scope() != NULL) { 2693 if (stmt->scope() != NULL) {
2694 return Bailout("ScopedBlock"); 2694 return Bailout("ScopedBlock");
2695 } 2695 }
2696 BreakAndContinueInfo break_info(stmt); 2696 BreakAndContinueInfo break_info(stmt);
2697 { BreakAndContinueScope push(&break_info, this); 2697 { BreakAndContinueScope push(&break_info, this);
2698 CHECK_BAILOUT(VisitStatements(stmt->statements())); 2698 CHECK_BAILOUT(VisitStatements(stmt->statements()));
2699 } 2699 }
2700 HBasicBlock* break_block = break_info.break_block(); 2700 HBasicBlock* break_block = break_info.break_block();
2701 if (break_block != NULL) { 2701 if (break_block != NULL) {
2702 if (current_block() != NULL) current_block()->Goto(break_block); 2702 if (current_block() != NULL) current_block()->Goto(break_block);
2703 break_block->SetJoinId(stmt->ExitId()); 2703 break_block->SetJoinId(stmt->ExitId());
(...skipping 4288 matching lines...) Expand 10 before | Expand all | Expand 10 after
6992 if (store->HasObservableSideEffects()) AddSimulate(proxy->id()); 6992 if (store->HasObservableSideEffects()) AddSimulate(proxy->id());
6993 break; 6993 break;
6994 } 6994 }
6995 case Variable::LOOKUP: 6995 case Variable::LOOKUP:
6996 return Bailout("unsupported lookup slot in declaration"); 6996 return Bailout("unsupported lookup slot in declaration");
6997 } 6997 }
6998 } 6998 }
6999 6999
7000 7000
7001 void HGraphBuilder::VisitModuleDeclaration(ModuleDeclaration* declaration) { 7001 void HGraphBuilder::VisitModuleDeclaration(ModuleDeclaration* declaration) {
7002 VariableProxy* proxy = declaration->proxy(); 7002 UNREACHABLE();
7003 Variable* var = proxy->var();
7004 switch (var->location()) {
7005 case Variable::UNALLOCATED: {
7006 // TODO(rossberg)
7007 return;
7008 }
7009 case Variable::CONTEXT: {
7010 // TODO(rossberg)
7011 break;
7012 }
7013 case Variable::PARAMETER:
7014 case Variable::LOCAL:
7015 case Variable::LOOKUP:
7016 UNREACHABLE();
7017 }
7018 } 7003 }
7019 7004
7020 7005
7021 void HGraphBuilder::VisitImportDeclaration(ImportDeclaration* declaration) { 7006 void HGraphBuilder::VisitImportDeclaration(ImportDeclaration* declaration) {
7022 VariableProxy* proxy = declaration->proxy(); 7007 UNREACHABLE();
7023 Variable* var = proxy->var();
7024 switch (var->location()) {
7025 case Variable::UNALLOCATED: {
7026 // TODO(rossberg)
7027 return;
7028 }
7029 case Variable::CONTEXT: {
7030 // TODO(rossberg)
7031 break;
7032 }
7033 case Variable::PARAMETER:
7034 case Variable::LOCAL:
7035 case Variable::LOOKUP:
7036 UNREACHABLE();
7037 }
7038 } 7008 }
7039 7009
7040 7010
7041 void HGraphBuilder::VisitExportDeclaration(ExportDeclaration* declaration) { 7011 void HGraphBuilder::VisitExportDeclaration(ExportDeclaration* declaration) {
7042 // TODO(rossberg) 7012 UNREACHABLE();
7043 } 7013 }
7044 7014
7045 7015
7046 void HGraphBuilder::VisitModuleLiteral(ModuleLiteral* module) { 7016 void HGraphBuilder::VisitModuleLiteral(ModuleLiteral* module) {
7047 // TODO(rossberg) 7017 UNREACHABLE();
7048 } 7018 }
7049 7019
7050 7020
7051 void HGraphBuilder::VisitModuleVariable(ModuleVariable* module) { 7021 void HGraphBuilder::VisitModuleVariable(ModuleVariable* module) {
7052 // TODO(rossberg) 7022 UNREACHABLE();
7053 } 7023 }
7054 7024
7055 7025
7056 void HGraphBuilder::VisitModulePath(ModulePath* module) { 7026 void HGraphBuilder::VisitModulePath(ModulePath* module) {
7057 // TODO(rossberg) 7027 UNREACHABLE();
7058 } 7028 }
7059 7029
7060 7030
7061 void HGraphBuilder::VisitModuleUrl(ModuleUrl* module) { 7031 void HGraphBuilder::VisitModuleUrl(ModuleUrl* module) {
7062 // TODO(rossberg) 7032 UNREACHABLE();
7063 } 7033 }
7064 7034
7065 7035
7066 // Generators for inline runtime functions. 7036 // Generators for inline runtime functions.
7067 // Support for types. 7037 // Support for types.
7068 void HGraphBuilder::GenerateIsSmi(CallRuntime* call) { 7038 void HGraphBuilder::GenerateIsSmi(CallRuntime* call) {
7069 ASSERT(call->arguments()->length() == 1); 7039 ASSERT(call->arguments()->length() == 1);
7070 CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); 7040 CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
7071 HValue* value = Pop(); 7041 HValue* value = Pop();
7072 HIsSmiAndBranch* result = new(zone()) HIsSmiAndBranch(value); 7042 HIsSmiAndBranch* result = new(zone()) HIsSmiAndBranch(value);
(...skipping 1069 matching lines...) Expand 10 before | Expand all | Expand 10 after
8142 } 8112 }
8143 } 8113 }
8144 8114
8145 #ifdef DEBUG 8115 #ifdef DEBUG
8146 if (graph_ != NULL) graph_->Verify(false); // No full verify. 8116 if (graph_ != NULL) graph_->Verify(false); // No full verify.
8147 if (allocator_ != NULL) allocator_->Verify(); 8117 if (allocator_ != NULL) allocator_->Verify();
8148 #endif 8118 #endif
8149 } 8119 }
8150 8120
8151 } } // namespace v8::internal 8121 } } // namespace v8::internal
OLDNEW
« src/heap.cc ('K') | « src/heap.cc ('k') | src/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698