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

Side by Side Diff: test/unittests/compiler/simplified-operator-unittest.cc

Issue 2082523002: [turbofan] Introduce CheckTaggedSigned and CheckTaggedPointer operators. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compile Created 4 years, 6 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 | « test/unittests/compiler/instruction-selector-unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/opcodes.h" 5 #include "src/compiler/opcodes.h"
6 #include "src/compiler/operator.h" 6 #include "src/compiler/operator.h"
7 #include "src/compiler/operator-properties.h" 7 #include "src/compiler/operator-properties.h"
8 #include "src/compiler/simplified-operator.h" 8 #include "src/compiler/simplified-operator.h"
9 #include "src/types.h" 9 #include "src/types.h"
10 #include "test/unittests/test-utils.h" 10 #include "test/unittests/test-utils.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 EXPECT_EQ(simplified1.StoreBuffer(access), simplified2.StoreBuffer(access)); 149 EXPECT_EQ(simplified1.StoreBuffer(access), simplified2.StoreBuffer(access));
150 } 150 }
151 151
152 152
153 TEST_P(SimplifiedBufferAccessOperatorTest, LoadBuffer) { 153 TEST_P(SimplifiedBufferAccessOperatorTest, LoadBuffer) {
154 SimplifiedOperatorBuilder simplified(zone()); 154 SimplifiedOperatorBuilder simplified(zone());
155 BufferAccess const access(GetParam()); 155 BufferAccess const access(GetParam());
156 const Operator* op = simplified.LoadBuffer(access); 156 const Operator* op = simplified.LoadBuffer(access);
157 157
158 EXPECT_EQ(IrOpcode::kLoadBuffer, op->opcode()); 158 EXPECT_EQ(IrOpcode::kLoadBuffer, op->opcode());
159 EXPECT_EQ(Operator::kNoThrow | Operator::kNoWrite, op->properties()); 159 EXPECT_EQ(Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
160 op->properties());
160 EXPECT_EQ(access, BufferAccessOf(op)); 161 EXPECT_EQ(access, BufferAccessOf(op));
161 162
162 EXPECT_EQ(3, op->ValueInputCount()); 163 EXPECT_EQ(3, op->ValueInputCount());
163 EXPECT_EQ(1, op->EffectInputCount()); 164 EXPECT_EQ(1, op->EffectInputCount());
164 EXPECT_EQ(1, op->ControlInputCount()); 165 EXPECT_EQ(1, op->ControlInputCount());
165 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op)); 166 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op));
166 167
167 EXPECT_EQ(1, op->ValueOutputCount()); 168 EXPECT_EQ(1, op->ValueOutputCount());
168 EXPECT_EQ(1, op->EffectOutputCount()); 169 EXPECT_EQ(1, op->EffectOutputCount());
169 EXPECT_EQ(0, op->ControlOutputCount()); 170 EXPECT_EQ(0, op->ControlOutputCount());
170 } 171 }
171 172
172 173
173 TEST_P(SimplifiedBufferAccessOperatorTest, StoreBuffer) { 174 TEST_P(SimplifiedBufferAccessOperatorTest, StoreBuffer) {
174 SimplifiedOperatorBuilder simplified(zone()); 175 SimplifiedOperatorBuilder simplified(zone());
175 BufferAccess const access(GetParam()); 176 BufferAccess const access(GetParam());
176 const Operator* op = simplified.StoreBuffer(access); 177 const Operator* op = simplified.StoreBuffer(access);
177 178
178 EXPECT_EQ(IrOpcode::kStoreBuffer, op->opcode()); 179 EXPECT_EQ(IrOpcode::kStoreBuffer, op->opcode());
179 EXPECT_EQ(Operator::kNoRead | Operator::kNoThrow, op->properties()); 180 EXPECT_EQ(Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,
181 op->properties());
180 EXPECT_EQ(access, BufferAccessOf(op)); 182 EXPECT_EQ(access, BufferAccessOf(op));
181 183
182 EXPECT_EQ(4, op->ValueInputCount()); 184 EXPECT_EQ(4, op->ValueInputCount());
183 EXPECT_EQ(1, op->EffectInputCount()); 185 EXPECT_EQ(1, op->EffectInputCount());
184 EXPECT_EQ(1, op->ControlInputCount()); 186 EXPECT_EQ(1, op->ControlInputCount());
185 EXPECT_EQ(6, OperatorProperties::GetTotalInputCount(op)); 187 EXPECT_EQ(6, OperatorProperties::GetTotalInputCount(op));
186 188
187 EXPECT_EQ(0, op->ValueOutputCount()); 189 EXPECT_EQ(0, op->ValueOutputCount());
188 EXPECT_EQ(1, op->EffectOutputCount()); 190 EXPECT_EQ(1, op->EffectOutputCount());
189 EXPECT_EQ(0, op->ControlOutputCount()); 191 EXPECT_EQ(0, op->ControlOutputCount());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 : public TestWithZone, 253 : public TestWithZone,
252 public ::testing::WithParamInterface<ElementAccess> {}; 254 public ::testing::WithParamInterface<ElementAccess> {};
253 255
254 256
255 TEST_P(SimplifiedElementAccessOperatorTest, LoadElement) { 257 TEST_P(SimplifiedElementAccessOperatorTest, LoadElement) {
256 SimplifiedOperatorBuilder simplified(zone()); 258 SimplifiedOperatorBuilder simplified(zone());
257 const ElementAccess& access = GetParam(); 259 const ElementAccess& access = GetParam();
258 const Operator* op = simplified.LoadElement(access); 260 const Operator* op = simplified.LoadElement(access);
259 261
260 EXPECT_EQ(IrOpcode::kLoadElement, op->opcode()); 262 EXPECT_EQ(IrOpcode::kLoadElement, op->opcode());
261 EXPECT_EQ(Operator::kNoThrow | Operator::kNoWrite, op->properties()); 263 EXPECT_EQ(Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
264 op->properties());
262 EXPECT_EQ(access, ElementAccessOf(op)); 265 EXPECT_EQ(access, ElementAccessOf(op));
263 266
264 EXPECT_EQ(2, op->ValueInputCount()); 267 EXPECT_EQ(2, op->ValueInputCount());
265 EXPECT_EQ(1, op->EffectInputCount()); 268 EXPECT_EQ(1, op->EffectInputCount());
266 EXPECT_EQ(1, op->ControlInputCount()); 269 EXPECT_EQ(1, op->ControlInputCount());
267 EXPECT_EQ(4, OperatorProperties::GetTotalInputCount(op)); 270 EXPECT_EQ(4, OperatorProperties::GetTotalInputCount(op));
268 271
269 EXPECT_EQ(1, op->ValueOutputCount()); 272 EXPECT_EQ(1, op->ValueOutputCount());
270 EXPECT_EQ(1, op->EffectOutputCount()); 273 EXPECT_EQ(1, op->EffectOutputCount());
271 EXPECT_EQ(0, op->ControlOutputCount()); 274 EXPECT_EQ(0, op->ControlOutputCount());
272 } 275 }
273 276
274 277
275 TEST_P(SimplifiedElementAccessOperatorTest, StoreElement) { 278 TEST_P(SimplifiedElementAccessOperatorTest, StoreElement) {
276 SimplifiedOperatorBuilder simplified(zone()); 279 SimplifiedOperatorBuilder simplified(zone());
277 const ElementAccess& access = GetParam(); 280 const ElementAccess& access = GetParam();
278 const Operator* op = simplified.StoreElement(access); 281 const Operator* op = simplified.StoreElement(access);
279 282
280 EXPECT_EQ(IrOpcode::kStoreElement, op->opcode()); 283 EXPECT_EQ(IrOpcode::kStoreElement, op->opcode());
281 EXPECT_EQ(Operator::kNoRead | Operator::kNoThrow, op->properties()); 284 EXPECT_EQ(Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,
285 op->properties());
282 EXPECT_EQ(access, ElementAccessOf(op)); 286 EXPECT_EQ(access, ElementAccessOf(op));
283 287
284 EXPECT_EQ(3, op->ValueInputCount()); 288 EXPECT_EQ(3, op->ValueInputCount());
285 EXPECT_EQ(1, op->EffectInputCount()); 289 EXPECT_EQ(1, op->EffectInputCount());
286 EXPECT_EQ(1, op->ControlInputCount()); 290 EXPECT_EQ(1, op->ControlInputCount());
287 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op)); 291 EXPECT_EQ(5, OperatorProperties::GetTotalInputCount(op));
288 292
289 EXPECT_EQ(0, op->ValueOutputCount()); 293 EXPECT_EQ(0, op->ValueOutputCount());
290 EXPECT_EQ(1, op->EffectOutputCount()); 294 EXPECT_EQ(1, op->EffectOutputCount());
291 EXPECT_EQ(0, op->ControlOutputCount()); 295 EXPECT_EQ(0, op->ControlOutputCount());
292 } 296 }
293 297
294 298
295 INSTANTIATE_TEST_CASE_P(SimplifiedOperatorTest, 299 INSTANTIATE_TEST_CASE_P(SimplifiedOperatorTest,
296 SimplifiedElementAccessOperatorTest, 300 SimplifiedElementAccessOperatorTest,
297 ::testing::ValuesIn(kElementAccesses)); 301 ::testing::ValuesIn(kElementAccesses));
298 302
299 } // namespace compiler 303 } // namespace compiler
300 } // namespace internal 304 } // namespace internal
301 } // namespace v8 305 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/compiler/instruction-selector-unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698