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

Side by Side Diff: src/compiler/ia32/instruction-scheduler-ia32.cc

Issue 2376963002: [turbofan] Relax dependencies due to deopt during instruction scheduling. (Closed)
Patch Set: fix formatting (git cl format) Created 4 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
« no previous file with comments | « no previous file | src/compiler/instruction-scheduler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/instruction-scheduler.h" 5 #include "src/compiler/instruction-scheduler.h"
6 6
7 namespace v8 { 7 namespace v8 {
8 namespace internal { 8 namespace internal {
9 namespace compiler { 9 namespace compiler {
10 10
(...skipping 10 matching lines...) Expand all
21 case kIA32Cmp8: 21 case kIA32Cmp8:
22 case kIA32Test: 22 case kIA32Test:
23 case kIA32Test16: 23 case kIA32Test16:
24 case kIA32Test8: 24 case kIA32Test8:
25 case kIA32Or: 25 case kIA32Or:
26 case kIA32Xor: 26 case kIA32Xor:
27 case kIA32Sub: 27 case kIA32Sub:
28 case kIA32Imul: 28 case kIA32Imul:
29 case kIA32ImulHigh: 29 case kIA32ImulHigh:
30 case kIA32UmulHigh: 30 case kIA32UmulHigh:
31 case kIA32Idiv:
32 case kIA32Udiv:
33 case kIA32Not: 31 case kIA32Not:
34 case kIA32Neg: 32 case kIA32Neg:
35 case kIA32Shl: 33 case kIA32Shl:
36 case kIA32Shr: 34 case kIA32Shr:
37 case kIA32Sar: 35 case kIA32Sar:
38 case kIA32AddPair: 36 case kIA32AddPair:
39 case kIA32SubPair: 37 case kIA32SubPair:
40 case kIA32MulPair: 38 case kIA32MulPair:
41 case kIA32ShlPair: 39 case kIA32ShlPair:
42 case kIA32ShrPair: 40 case kIA32ShrPair:
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 case kAVXFloat64Abs: 94 case kAVXFloat64Abs:
97 case kAVXFloat64Neg: 95 case kAVXFloat64Neg:
98 case kAVXFloat32Abs: 96 case kAVXFloat32Abs:
99 case kAVXFloat32Neg: 97 case kAVXFloat32Neg:
100 case kIA32BitcastFI: 98 case kIA32BitcastFI:
101 case kIA32BitcastIF: 99 case kIA32BitcastIF:
102 return (instr->addressing_mode() == kMode_None) 100 return (instr->addressing_mode() == kMode_None)
103 ? kNoOpcodeFlags 101 ? kNoOpcodeFlags
104 : kIsLoadOperation | kHasSideEffect; 102 : kIsLoadOperation | kHasSideEffect;
105 103
104 case kIA32Idiv:
105 case kIA32Udiv:
106 return (instr->addressing_mode() == kMode_None)
107 ? kMayNeedDeoptCheck
108 : kMayNeedDeoptCheck | kIsLoadOperation | kHasSideEffect;
109
106 case kIA32Movsxbl: 110 case kIA32Movsxbl:
107 case kIA32Movzxbl: 111 case kIA32Movzxbl:
108 case kIA32Movb: 112 case kIA32Movb:
109 case kIA32Movsxwl: 113 case kIA32Movsxwl:
110 case kIA32Movzxwl: 114 case kIA32Movzxwl:
111 case kIA32Movw: 115 case kIA32Movw:
112 case kIA32Movl: 116 case kIA32Movl:
113 case kIA32Movss: 117 case kIA32Movss:
114 case kIA32Movsd: 118 case kIA32Movsd:
115 // Moves are used for memory load/store operations. 119 // Moves are used for memory load/store operations.
(...skipping 26 matching lines...) Expand all
142 146
143 147
144 int InstructionScheduler::GetInstructionLatency(const Instruction* instr) { 148 int InstructionScheduler::GetInstructionLatency(const Instruction* instr) {
145 // TODO(all): Add instruction cost modeling. 149 // TODO(all): Add instruction cost modeling.
146 return 1; 150 return 1;
147 } 151 }
148 152
149 } // namespace compiler 153 } // namespace compiler
150 } // namespace internal 154 } // namespace internal
151 } // namespace v8 155 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/instruction-scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698