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

Side by Side Diff: src/PNaClTranslator.cpp

Issue 870653002: Subzero: Initial implementation of multithreaded translation. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Cleanup Created 5 years, 11 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 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===// 1 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file implements the PNaCl bitcode file to Ice, to machine code 10 // This file implements the PNaCl bitcode file to Ice, to machine code
(...skipping 14 matching lines...) Expand all
25 #include "IceAPFloat.h" 25 #include "IceAPFloat.h"
26 #include "IceCfg.h" 26 #include "IceCfg.h"
27 #include "IceCfgNode.h" 27 #include "IceCfgNode.h"
28 #include "IceClFlags.h" 28 #include "IceClFlags.h"
29 #include "IceDefs.h" 29 #include "IceDefs.h"
30 #include "IceGlobalInits.h" 30 #include "IceGlobalInits.h"
31 #include "IceInst.h" 31 #include "IceInst.h"
32 #include "IceOperand.h" 32 #include "IceOperand.h"
33 #include "PNaClTranslator.h" 33 #include "PNaClTranslator.h"
34 34
35 #include <memory>
36
37 namespace { 35 namespace {
38 using namespace llvm; 36 using namespace llvm;
39 37
40 // Models elements in the list of types defined in the types block. 38 // Models elements in the list of types defined in the types block.
41 // These elements can be undefined, a (simple) type, or a function type 39 // These elements can be undefined, a (simple) type, or a function type
42 // signature. Note that an extended type is undefined on construction. 40 // signature. Note that an extended type is undefined on construction.
43 // Use methods setAsSimpleType and setAsFuncSigType to define 41 // Use methods setAsSimpleType and setAsFuncSigType to define
44 // the extended type. 42 // the extended type.
45 class ExtendedType { 43 class ExtendedType {
46 ExtendedType &operator=(const ExtendedType &Ty) = delete; 44 ExtendedType &operator=(const ExtendedType &Ty) = delete;
(...skipping 2768 matching lines...) Expand 10 before | Expand all | Expand 10 after
2815 ++NameIndex; 2813 ++NameIndex;
2816 } else { 2814 } else {
2817 Trans.checkIfUnnamedNameSafe(Decl->getName(), Context, Prefix); 2815 Trans.checkIfUnnamedNameSafe(Decl->getName(), Context, Prefix);
2818 } 2816 }
2819 } 2817 }
2820 2818
2821 bool ParseBlock(unsigned BlockID) override; 2819 bool ParseBlock(unsigned BlockID) override;
2822 2820
2823 void ExitBlock() override { 2821 void ExitBlock() override {
2824 InstallGlobalNamesAndGlobalVarInitializers(); 2822 InstallGlobalNamesAndGlobalVarInitializers();
2823 getTranslator().getContext()->waitForWorkerThreads();
2825 getTranslator().emitConstants(); 2824 getTranslator().emitConstants();
2826 } 2825 }
2827 2826
2828 void ProcessRecord() override; 2827 void ProcessRecord() override;
2829 }; 2828 };
2830 2829
2831 class ModuleValuesymtabParser : public ValuesymtabParser { 2830 class ModuleValuesymtabParser : public ValuesymtabParser {
2832 ModuleValuesymtabParser(const ModuleValuesymtabParser &) = delete; 2831 ModuleValuesymtabParser(const ModuleValuesymtabParser &) = delete;
2833 void operator=(const ModuleValuesymtabParser &) = delete; 2832 void operator=(const ModuleValuesymtabParser &) = delete;
2834 2833
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
2999 2998
3000 if (TopLevelBlocks != 1) { 2999 if (TopLevelBlocks != 1) {
3001 errs() << IRFilename 3000 errs() << IRFilename
3002 << ": Contains more than one module. Found: " << TopLevelBlocks 3001 << ": Contains more than one module. Found: " << TopLevelBlocks
3003 << "\n"; 3002 << "\n";
3004 ErrorStatus = true; 3003 ErrorStatus = true;
3005 } 3004 }
3006 } 3005 }
3007 3006
3008 } // end of namespace Ice 3007 } // end of namespace Ice
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698