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

Side by Side Diff: src/IceGlobalInits.h

Issue 1848303003: Simplify references to command line flags. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 4 years, 8 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
« no previous file with comments | « src/IceGlobalContext.cpp ('k') | src/IceInstARM32.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceGlobalInits.h - Global declarations -------*- C++ -*-===// 1 //===- subzero/src/IceGlobalInits.h - Global declarations -------*- C++ -*-===//
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 /// \file 10 /// \file
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 /// should have ExternalLinkage (as a special case). 102 /// should have ExternalLinkage (as a special case).
103 virtual bool isPNaClABIExternalName(const std::string &Name) const = 0; 103 virtual bool isPNaClABIExternalName(const std::string &Name) const = 0;
104 104
105 protected: 105 protected:
106 GlobalDeclaration(GlobalDeclarationKind Kind, 106 GlobalDeclaration(GlobalDeclarationKind Kind,
107 llvm::GlobalValue::LinkageTypes Linkage) 107 llvm::GlobalValue::LinkageTypes Linkage)
108 : Kind(Kind), Linkage(Linkage) {} 108 : Kind(Kind), Linkage(Linkage) {}
109 109
110 /// Returns true if linkage is defined correctly for the global declaration, 110 /// Returns true if linkage is defined correctly for the global declaration,
111 /// based on default rules. 111 /// based on default rules.
112 bool verifyLinkageDefault(const GlobalContext *Ctx) const { 112 bool verifyLinkageDefault() const {
113 switch (Linkage) { 113 switch (Linkage) {
114 default: 114 default:
115 return false; 115 return false;
116 case llvm::GlobalValue::InternalLinkage: 116 case llvm::GlobalValue::InternalLinkage:
117 return true; 117 return true;
118 case llvm::GlobalValue::ExternalLinkage: 118 case llvm::GlobalValue::ExternalLinkage:
119 return Ctx->getFlags().getAllowExternDefinedSymbols(); 119 return getFlags().getAllowExternDefinedSymbols();
120 } 120 }
121 } 121 }
122 122
123 const GlobalDeclarationKind Kind; 123 const GlobalDeclarationKind Kind;
124 llvm::GlobalValue::LinkageTypes Linkage; 124 llvm::GlobalValue::LinkageTypes Linkage;
125 GlobalString Name; 125 GlobalString Name;
126 }; 126 };
127 127
128 /// Models a function declaration. This includes the type signature of the 128 /// Models a function declaration. This includes the type signature of the
129 /// function, its calling conventions, and its linkage. 129 /// function, its calling conventions, and its linkage.
(...skipping 23 matching lines...) Expand all
153 bool getSuppressMangling() const final { return isExternal() && IsProto; } 153 bool getSuppressMangling() const final { return isExternal() && IsProto; }
154 154
155 /// Returns true if linkage is correct for the function declaration. 155 /// Returns true if linkage is correct for the function declaration.
156 bool verifyLinkageCorrect(const GlobalContext *Ctx) const { 156 bool verifyLinkageCorrect(const GlobalContext *Ctx) const {
157 if (getName().hasStdString()) { 157 if (getName().hasStdString()) {
158 if (isPNaClABIExternalName(getName().toString()) || 158 if (isPNaClABIExternalName(getName().toString()) ||
159 isIntrinsicName(Ctx)) { 159 isIntrinsicName(Ctx)) {
160 return Linkage == llvm::GlobalValue::ExternalLinkage; 160 return Linkage == llvm::GlobalValue::ExternalLinkage;
161 } 161 }
162 } 162 }
163 return verifyLinkageDefault(Ctx); 163 return verifyLinkageDefault();
164 } 164 }
165 165
166 /// Validates that the type signature of the function is correct. Returns true 166 /// Validates that the type signature of the function is correct. Returns true
167 /// if valid. 167 /// if valid.
168 bool validateTypeSignature(const GlobalContext *Ctx) const { 168 bool validateTypeSignature(const GlobalContext *Ctx) const {
169 bool IsIntrinsic; 169 bool IsIntrinsic;
170 if (const Intrinsics::FullIntrinsicInfo *Info = 170 if (const Intrinsics::FullIntrinsicInfo *Info =
171 getIntrinsicInfo(Ctx, &IsIntrinsic)) 171 getIntrinsicInfo(Ctx, &IsIntrinsic))
172 return validateIntrinsicTypeSignature(Info); 172 return validateIntrinsicTypeSignature(Info);
173 return !IsIntrinsic && validateRegularTypeSignature(); 173 return !IsIntrinsic && validateRegularTypeSignature();
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 } 454 }
455 455
456 /// Prints out type for initializer associated with the declaration to Stream. 456 /// Prints out type for initializer associated with the declaration to Stream.
457 void dumpType(Ostream &Stream) const final; 457 void dumpType(Ostream &Stream) const final;
458 458
459 /// Prints out the definition of the global variable declaration (including 459 /// Prints out the definition of the global variable declaration (including
460 /// initialization). 460 /// initialization).
461 virtual void dump(Ostream &Stream) const override; 461 virtual void dump(Ostream &Stream) const override;
462 462
463 /// Returns true if linkage is correct for the variable declaration. 463 /// Returns true if linkage is correct for the variable declaration.
464 bool verifyLinkageCorrect(const GlobalContext *Ctx) const { 464 bool verifyLinkageCorrect() const {
465 if (getName().hasStdString()) { 465 if (getName().hasStdString()) {
466 if (isPNaClABIExternalName(getName().toString())) { 466 if (isPNaClABIExternalName(getName().toString())) {
467 return Linkage == llvm::GlobalValue::ExternalLinkage; 467 return Linkage == llvm::GlobalValue::ExternalLinkage;
468 } 468 }
469 } 469 }
470 return verifyLinkageDefault(Ctx); 470 return verifyLinkageDefault();
471 } 471 }
472 472
473 static bool classof(const GlobalDeclaration *Addr) { 473 static bool classof(const GlobalDeclaration *Addr) {
474 return Addr->getKind() == VariableDeclarationKind; 474 return Addr->getKind() == VariableDeclarationKind;
475 } 475 }
476 476
477 bool getSuppressMangling() const final { 477 bool getSuppressMangling() const final {
478 if (ForceSuppressMangling) 478 if (ForceSuppressMangling)
479 return true; 479 return true;
480 return isExternal() && !hasInitializer(); 480 return isExternal() && !hasInitializer();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 template <class StreamType> 513 template <class StreamType>
514 inline StreamType &operator<<(StreamType &Stream, 514 inline StreamType &operator<<(StreamType &Stream,
515 const GlobalDeclaration &Addr) { 515 const GlobalDeclaration &Addr) {
516 Addr.dump(Stream); 516 Addr.dump(Stream);
517 return Stream; 517 return Stream;
518 } 518 }
519 519
520 } // end of namespace Ice 520 } // end of namespace Ice
521 521
522 #endif // SUBZERO_SRC_ICEGLOBALINITS_H 522 #endif // SUBZERO_SRC_ICEGLOBALINITS_H
OLDNEW
« no previous file with comments | « src/IceGlobalContext.cpp ('k') | src/IceInstARM32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698