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

Side by Side Diff: src/IceTargetLoweringX86BaseImpl.h

Issue 1395693005: Subzero: Implement "second-chance bin-packing" for register allocation. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 2 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/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// 1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- 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 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 std::swap(Src0, Src1); 1302 std::swap(Src0, Src1);
1303 ++SwapCount; 1303 ++SwapCount;
1304 } 1304 }
1305 // Improve two-address code patterns by avoiding a copy to the dest 1305 // Improve two-address code patterns by avoiding a copy to the dest
1306 // register when one of the source operands ends its lifetime here. 1306 // register when one of the source operands ends its lifetime here.
1307 if (!Inst->isLastUse(Src0) && Inst->isLastUse(Src1)) { 1307 if (!Inst->isLastUse(Src0) && Inst->isLastUse(Src1)) {
1308 std::swap(Src0, Src1); 1308 std::swap(Src0, Src1);
1309 ++SwapCount; 1309 ++SwapCount;
1310 } 1310 }
1311 assert(SwapCount <= 1); 1311 assert(SwapCount <= 1);
1312 (void) SwapCount; 1312 (void)SwapCount;
1313 } 1313 }
1314 if (!Traits::Is64Bit && Dest->getType() == IceType_i64) { 1314 if (!Traits::Is64Bit && Dest->getType() == IceType_i64) {
1315 // These x86-32 helper-call-involved instructions are lowered in this 1315 // These x86-32 helper-call-involved instructions are lowered in this
1316 // separate switch. This is because loOperand() and hiOperand() may insert 1316 // separate switch. This is because loOperand() and hiOperand() may insert
1317 // redundant instructions for constant blinding and pooling. Such redundant 1317 // redundant instructions for constant blinding and pooling. Such redundant
1318 // instructions will fail liveness analysis under -Om1 setting. And, 1318 // instructions will fail liveness analysis under -Om1 setting. And,
1319 // actually these arguments do not need to be processed with loOperand() 1319 // actually these arguments do not need to be processed with loOperand()
1320 // and hiOperand() to be used. 1320 // and hiOperand() to be used.
1321 switch (Inst->getOp()) { 1321 switch (Inst->getOp()) {
1322 case InstArithmetic::Udiv: { 1322 case InstArithmetic::Udiv: {
(...skipping 4192 matching lines...) Expand 10 before | Expand all | Expand 10 after
5515 } 5515 }
5516 // the offset is not eligible for blinding or pooling, return the original 5516 // the offset is not eligible for blinding or pooling, return the original
5517 // mem operand 5517 // mem operand
5518 return MemOperand; 5518 return MemOperand;
5519 } 5519 }
5520 5520
5521 } // end of namespace X86Internal 5521 } // end of namespace X86Internal
5522 } // end of namespace Ice 5522 } // end of namespace Ice
5523 5523
5524 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H 5524 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698