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

Side by Side Diff: src/IceTargetLoweringARM32.cpp

Issue 1866463002: Subzero: Improve non-MINIMAL string performance. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: 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/IceRegAlloc.cpp ('k') | src/IceTargetLoweringMIPS32.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/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===// 1 //===- subzero/src/IceTargetLoweringARM32.cpp - ARM32 lowering ------------===//
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 1252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 1263
1264 void TargetARM32::emitVariable(const Variable *Var) const { 1264 void TargetARM32::emitVariable(const Variable *Var) const {
1265 if (!BuildDefs::dump()) 1265 if (!BuildDefs::dump())
1266 return; 1266 return;
1267 Ostream &Str = Ctx->getStrEmit(); 1267 Ostream &Str = Ctx->getStrEmit();
1268 if (Var->hasReg()) { 1268 if (Var->hasReg()) {
1269 Str << getRegName(Var->getRegNum(), Var->getType()); 1269 Str << getRegName(Var->getRegNum(), Var->getType());
1270 return; 1270 return;
1271 } 1271 }
1272 if (Var->mustHaveReg()) { 1272 if (Var->mustHaveReg()) {
1273 llvm::report_fatal_error("Infinite-weight Variable (" + Var->getName(Func) + 1273 llvm::report_fatal_error("Infinite-weight Variable (" + Var->getName() +
1274 ") has no register assigned - function " + 1274 ") has no register assigned - function " +
1275 Func->getFunctionName()); 1275 Func->getFunctionName());
1276 } 1276 }
1277 assert(!Var->isRematerializable()); 1277 assert(!Var->isRematerializable());
1278 int32_t Offset = Var->getStackOffset(); 1278 int32_t Offset = Var->getStackOffset();
1279 auto BaseRegNum = Var->getBaseRegNum(); 1279 auto BaseRegNum = Var->getBaseRegNum();
1280 if (BaseRegNum.hasNoValue()) { 1280 if (BaseRegNum.hasNoValue()) {
1281 BaseRegNum = getFrameOrStackReg(); 1281 BaseRegNum = getFrameOrStackReg();
1282 } 1282 }
1283 const Type VarTy = Var->getType(); 1283 const Type VarTy = Var->getType();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1395 continue; 1395 continue;
1396 } 1396 }
1397 } else { 1397 } else {
1398 if (!CC.argInVFP(Ty, &RegNum)) { 1398 if (!CC.argInVFP(Ty, &RegNum)) {
1399 continue; 1399 continue;
1400 } 1400 }
1401 } 1401 }
1402 1402
1403 Variable *RegisterArg = Func->makeVariable(Ty); 1403 Variable *RegisterArg = Func->makeVariable(Ty);
1404 if (BuildDefs::dump()) { 1404 if (BuildDefs::dump()) {
1405 RegisterArg->setName(Func, "home_reg:" + Arg->getName(Func)); 1405 RegisterArg->setName(Func, "home_reg:" + Arg->getName());
1406 } 1406 }
1407 RegisterArg->setIsArg(); 1407 RegisterArg->setIsArg();
1408 Arg->setIsArg(false); 1408 Arg->setIsArg(false);
1409 Args[I] = RegisterArg; 1409 Args[I] = RegisterArg;
1410 switch (Ty) { 1410 switch (Ty) {
1411 default: { RegisterArg->setRegNum(RegNum); } break; 1411 default: { RegisterArg->setRegNum(RegNum); } break;
1412 case IceType_i64: { 1412 case IceType_i64: {
1413 auto *RegisterArg64 = llvm::cast<Variable64On32>(RegisterArg); 1413 auto *RegisterArg64 = llvm::cast<Variable64On32>(RegisterArg);
1414 RegisterArg64->initHiLo(Func); 1414 RegisterArg64->initHiLo(Func);
1415 RegisterArg64->getLo()->setRegNum( 1415 RegisterArg64->getLo()->setRegNum(
(...skipping 5496 matching lines...) Expand 10 before | Expand all | Expand 10 after
6912 // However, for compatibility with current NaCl LLVM, don't claim that. 6912 // However, for compatibility with current NaCl LLVM, don't claim that.
6913 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; 6913 Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n";
6914 } 6914 }
6915 6915
6916 SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM]; 6916 SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM];
6917 SmallBitVector TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM]; 6917 SmallBitVector TargetARM32::TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM];
6918 SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; 6918 SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM];
6919 6919
6920 } // end of namespace ARM32 6920 } // end of namespace ARM32
6921 } // end of namespace Ice 6921 } // end of namespace Ice
OLDNEW
« no previous file with comments | « src/IceRegAlloc.cpp ('k') | src/IceTargetLoweringMIPS32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698