зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1121299 - Let GVN fold MSimdBox when it can fold MSimdConstants. r=sunfish
This commit is contained in:
Родитель
eb68fdf7f2
Коммит
a6068b03ba
|
@ -0,0 +1,28 @@
|
|||
setJitCompilerOption("baseline.warmup.trigger", 10);
|
||||
setJitCompilerOption("ion.warmup.trigger", 30);
|
||||
|
||||
function test_1(i) {
|
||||
if (i >= 40)
|
||||
return;
|
||||
var a = SIMD.float32x4(1.1, 2.2, 3.3, 4.6);
|
||||
SIMD.int32x4.fromFloat32x4(a);
|
||||
test_1(i + 1);
|
||||
}
|
||||
test_1(0);
|
||||
|
||||
|
||||
var float32x4 = SIMD.float32x4;
|
||||
function test_2() {
|
||||
var Array = float32x4.array(3);
|
||||
var array = new Array([
|
||||
float32x4(1, 2, 3, 4),
|
||||
float32x4(5, 6, 7, 8),
|
||||
float32x4(9, 10, 11, 12)
|
||||
]);
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
}
|
||||
test_2();
|
||||
evaluate("test_2(); test_2();", {
|
||||
compileAndGo: true
|
||||
});
|
|
@ -2963,6 +2963,17 @@ class MSimdBox
|
|||
return initialHeap_;
|
||||
}
|
||||
|
||||
bool congruentTo(const MDefinition *ins) const MOZ_OVERRIDE {
|
||||
if (congruentIfOperandsEqual(ins)) {
|
||||
MOZ_ASSERT(ins->toSimdBox()->initialHeap() == initialHeap());
|
||||
// The template object is likely to be different, but represents the
|
||||
// same kind of objects as the MIRTypes are identical.
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
AliasSet getAliasSet() const MOZ_OVERRIDE {
|
||||
return AliasSet::None();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче