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

Side by Side Diff: src/IceTargetLowering.cpp

Issue 1696123003: Subzero: Set the correct target arch in the browser hookup. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Better bad-target error messages Created 4 years, 10 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/IceTargetLowering.cpp - Basic lowering implementation --===// 1 //===- subzero/src/IceTargetLowering.cpp - Basic lowering implementation --===//
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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 size_t Pos = RegName.find(Separator); 147 size_t Pos = RegName.find(Separator);
148 if (Pos == std::string::npos) { 148 if (Pos == std::string::npos) {
149 *SplitRegClass = ""; 149 *SplitRegClass = "";
150 *SplitRegName = RegName; 150 *SplitRegName = RegName;
151 } else { 151 } else {
152 *SplitRegClass = RegName.substr(0, Pos); 152 *SplitRegClass = RegName.substr(0, Pos);
153 *SplitRegName = RegName.substr(Pos + SeparatorWidth); 153 *SplitRegName = RegName.substr(Pos + SeparatorWidth);
154 } 154 }
155 } 155 }
156 156
157 LLVM_ATTRIBUTE_NORETURN void badTargetFatalError(TargetArch Target) {
158 llvm::report_fatal_error("Unsupported target: " +
159 std::string(targetArchString(Target)));
160 }
161
157 } // end of anonymous namespace 162 } // end of anonymous namespace
158 163
159 void TargetLowering::filterTypeToRegisterSet( 164 void TargetLowering::filterTypeToRegisterSet(
160 GlobalContext *Ctx, int32_t NumRegs, 165 GlobalContext *Ctx, int32_t NumRegs,
161 llvm::SmallBitVector TypeToRegisterSet[], size_t TypeToRegisterSetSize, 166 llvm::SmallBitVector TypeToRegisterSet[], size_t TypeToRegisterSetSize,
162 std::function<IceString(RegNumT)> getRegName, 167 std::function<IceString(RegNumT)> getRegName,
163 std::function<IceString(RegClass)> getRegClassName) { 168 std::function<IceString(RegClass)> getRegClassName) {
164 std::vector<llvm::SmallBitVector> UseSet(TypeToRegisterSetSize, 169 std::vector<llvm::SmallBitVector> UseSet(TypeToRegisterSetSize,
165 llvm::SmallBitVector(NumRegs)); 170 llvm::SmallBitVector(NumRegs));
166 std::vector<llvm::SmallBitVector> ExcludeSet(TypeToRegisterSetSize, 171 std::vector<llvm::SmallBitVector> ExcludeSet(TypeToRegisterSetSize,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 IndentTwice); 241 IndentTwice);
237 } 242 }
238 Str << "\n"; 243 Str << "\n";
239 } 244 }
240 } 245 }
241 246
242 std::unique_ptr<TargetLowering> 247 std::unique_ptr<TargetLowering>
243 TargetLowering::createLowering(TargetArch Target, Cfg *Func) { 248 TargetLowering::createLowering(TargetArch Target, Cfg *Func) {
244 switch (Target) { 249 switch (Target) {
245 default: 250 default:
246 llvm::report_fatal_error("Unsupported target"); 251 badTargetFatalError(Target);
247 #define SUBZERO_TARGET(X) \ 252 #define SUBZERO_TARGET(X) \
248 case Target_##X: \ 253 case Target_##X: \
249 return ::X::createTargetLowering(Func); 254 return ::X::createTargetLowering(Func);
250 #include "llvm/Config/SZTargets.def" 255 #include "llvm/Config/SZTargets.def"
251 #undef SUBZERO_TARGET 256 #undef SUBZERO_TARGET
252 } 257 }
253 } 258 }
254 259
255 void TargetLowering::staticInit(GlobalContext *Ctx) { 260 void TargetLowering::staticInit(GlobalContext *Ctx) {
256 const TargetArch Target = Ctx->getFlags().getTargetArch(); 261 const TargetArch Target = Ctx->getFlags().getTargetArch();
257 // Call the specified target's static initializer. 262 // Call the specified target's static initializer.
258 switch (Target) { 263 switch (Target) {
259 default: 264 default:
260 llvm::report_fatal_error("Unsupported target"); 265 badTargetFatalError(Target);
261 #define SUBZERO_TARGET(X) \ 266 #define SUBZERO_TARGET(X) \
262 case Target_##X: { \ 267 case Target_##X: { \
263 static bool InitGuard##X = false; \ 268 static bool InitGuard##X = false; \
264 if (InitGuard##X) { \ 269 if (InitGuard##X) { \
265 return; \ 270 return; \
266 } \ 271 } \
267 InitGuard##X = true; \ 272 InitGuard##X = true; \
268 ::X::staticInit(Ctx); \ 273 ::X::staticInit(Ctx); \
269 } break; 274 } break;
270 #include "llvm/Config/SZTargets.def" 275 #include "llvm/Config/SZTargets.def"
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 Str << "+"; 740 Str << "+";
736 Str << Offset; 741 Str << Offset;
737 } 742 }
738 } 743 }
739 744
740 std::unique_ptr<TargetDataLowering> 745 std::unique_ptr<TargetDataLowering>
741 TargetDataLowering::createLowering(GlobalContext *Ctx) { 746 TargetDataLowering::createLowering(GlobalContext *Ctx) {
742 TargetArch Target = Ctx->getFlags().getTargetArch(); 747 TargetArch Target = Ctx->getFlags().getTargetArch();
743 switch (Target) { 748 switch (Target) {
744 default: 749 default:
745 llvm::report_fatal_error("Unsupported target"); 750 badTargetFatalError(Target);
746 #define SUBZERO_TARGET(X) \ 751 #define SUBZERO_TARGET(X) \
747 case Target_##X: \ 752 case Target_##X: \
748 return ::X::createTargetDataLowering(Ctx); 753 return ::X::createTargetDataLowering(Ctx);
749 #include "llvm/Config/SZTargets.def" 754 #include "llvm/Config/SZTargets.def"
750 #undef SUBZERO_TARGET 755 #undef SUBZERO_TARGET
751 } 756 }
752 } 757 }
753 758
754 TargetDataLowering::~TargetDataLowering() = default; 759 TargetDataLowering::~TargetDataLowering() = default;
755 760
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 } 872 }
868 873
869 Str << "\t.size\t" << MangledName << ", " << Size << "\n"; 874 Str << "\t.size\t" << MangledName << ", " << Size << "\n";
870 } 875 }
871 876
872 std::unique_ptr<TargetHeaderLowering> 877 std::unique_ptr<TargetHeaderLowering>
873 TargetHeaderLowering::createLowering(GlobalContext *Ctx) { 878 TargetHeaderLowering::createLowering(GlobalContext *Ctx) {
874 TargetArch Target = Ctx->getFlags().getTargetArch(); 879 TargetArch Target = Ctx->getFlags().getTargetArch();
875 switch (Target) { 880 switch (Target) {
876 default: 881 default:
877 llvm::report_fatal_error("Unsupported target"); 882 badTargetFatalError(Target);
878 #define SUBZERO_TARGET(X) \ 883 #define SUBZERO_TARGET(X) \
879 case Target_##X: \ 884 case Target_##X: \
880 return ::X::createTargetHeaderLowering(Ctx); 885 return ::X::createTargetHeaderLowering(Ctx);
881 #include "llvm/Config/SZTargets.def" 886 #include "llvm/Config/SZTargets.def"
882 #undef SUBZERO_TARGET 887 #undef SUBZERO_TARGET
883 } 888 }
884 } 889 }
885 890
886 TargetHeaderLowering::~TargetHeaderLowering() = default; 891 TargetHeaderLowering::~TargetHeaderLowering() = default;
887 892
888 } // end of namespace Ice 893 } // end of namespace Ice
OLDNEW
« src/IceBrowserCompileServer.cpp ('K') | « src/IceBrowserCompileServer.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698