summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression
diff options
context:
space:
mode:
authorSergey Andreenko <seandree@microsoft.com>2018-03-08 17:17:31 -0800
committerGitHub <noreply@github.com>2018-03-08 17:17:31 -0800
commit8559a6de5e10706bd8a96d19779054867bfd4e46 (patch)
treed9f14eaa70092cf0fdd23bed5aa6efc7a8443402 /tests/src/JIT/Regression
parent95bb4dc8060309ff1e48d2312b6f397ad72f9da5 (diff)
downloadcoreclr-8559a6de5e10706bd8a96d19779054867bfd4e46.tar.gz
coreclr-8559a6de5e10706bd8a96d19779054867bfd4e46.tar.bz2
coreclr-8559a6de5e10706bd8a96d19779054867bfd4e46.zip
[RyuJit] Fix DCE in liveness. (#16845)
* add repro * fix
Diffstat (limited to 'tests/src/JIT/Regression')
-rw-r--r--tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.il166
-rw-r--r--tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.ilproj23
2 files changed, 189 insertions, 0 deletions
diff --git a/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.il b/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.il
new file mode 100644
index 0000000000..325fa74ae6
--- /dev/null
+++ b/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.il
@@ -0,0 +1,166 @@
+// Microsoft (R) .NET Framework IL Disassembler. Version 4.7.3108.0
+// Copyright (c) Microsoft Corporation. All rights reserved.
+
+// This test originally hit an error in dead code elimination phase that overwrote flag that trigers next iteration if the current iteration has deleted something (fgStmtRemoved)
+// from true to false during the iteration.
+
+// Metadata version: v4.0.30319
+.assembly extern System.Runtime { auto }
+.assembly DevDiv_578214 {}
+
+.class private auto ansi beforefieldinit DevDiv_578214.Program
+ extends [System.Runtime]System.Object
+{
+.method static int16 ILGEN_METHOD(unsigned int16, float32, native unsigned int, unsigned int16, unsigned int8, int16, unsigned int32)
+{
+ .maxstack 192
+ .locals init (unsigned int64)
+
+ IL_0000: ldc.r8 float64(0x1091e4a00cee077c)
+ IL_0009: ckfinite
+ IL_000a: conv.i4
+ IL_000b: ldarg.s 0x04
+ IL_000d: ldloc 0x0000
+ IL_0011: conv.i1
+ IL_0012: sub.ovf.un
+ IL_0013: add.ovf
+ IL_0014: ldarg.s 0x01
+ IL_0016: starg 0x0001
+ IL_001a: nop
+ IL_001b: brtrue
+ IL_003c
+ IL_0020: ldarg.s 0x01
+ IL_0022: ldarg 0x0000
+ IL_0026: ldarg 0x0003
+ IL_002a: clt.un
+ IL_002c: ldarg 0x0004
+ IL_0030: xor
+ IL_0031: conv.r8
+ IL_0032: neg
+ IL_0033: starg 0x0001
+ IL_0037: conv.ovf.u4.un
+ IL_0038: starg 0x0005
+ IL_003c: ldc.i8 0x26f19f75aa0243b7
+ IL_0045: conv.i8
+ IL_0046: conv.r8
+ IL_0047: ldarg.s 0x01
+ IL_0049: conv.r.un
+ IL_004a: pop
+ IL_004b: ldarg.s 0x03
+ IL_004d: ldarg 0x0006
+ IL_0051: ceq
+ IL_0053: conv.r.un
+ IL_0054: cgt.un
+ IL_0056: ldloc 0x0000
+ IL_005a: conv.ovf.i8.un
+ IL_005b: brtrue
+ IL_006b
+ IL_0060: ldarg 0x0001
+ IL_0064: pop
+ IL_0065: ldarg 0x0001
+ IL_0069: ckfinite
+ IL_006a: pop
+ IL_006b: ldarg.s 0x05
+ IL_006d: neg
+ IL_006e: conv.ovf.i8.un
+ IL_006f: ldloc.s 0x00
+ IL_0071: ceq
+ IL_0073: dup
+ IL_0074: div.un
+ IL_0075: ldarg 0x0001
+ IL_0079: neg
+ IL_007a: ckfinite
+ IL_007b: starg.s 0x01
+ IL_007d: bgt
+ IL_0086
+ IL_0082: ldloc.s 0x00
+ IL_0084: conv.ovf.u2.un
+ IL_0085: pop
+ IL_0086: ldarg.s 0x04
+ IL_0088: conv.ovf.u4.un
+ IL_0089: conv.ovf.u8.un
+ IL_008a: ldarg.s 0x01
+ IL_008c: conv.ovf.u1
+ IL_008d: shr
+ IL_008e: conv.r4
+ IL_008f: ldarg 0x0006
+ IL_0093: conv.r.un
+ IL_0094: conv.r.un
+ IL_0095: ckfinite
+ IL_0096: ckfinite
+ IL_0097: clt
+ IL_0099: ldc.i8 0x643c1542f946b6ef
+ IL_00a2: conv.r8
+ IL_00a3: ldc.r8 float64(0x8bd4c4eb52d70435)
+ IL_00ac: conv.r.un
+ IL_00ad: conv.ovf.u8
+ IL_00ae: not
+ IL_00af: conv.r8
+ IL_00b0: conv.ovf.u1
+ IL_00b1: starg 0x0004
+ IL_00b5: ldc.i4 0x7771fb8b
+ IL_00ba: conv.r8
+ IL_00bb: cgt.un
+ IL_00bd: pop
+ IL_00be: neg
+ IL_00bf: ret
+}
+
+.method private hidebysig static int32
+ Main(string[] args) cil managed
+{
+ .entrypoint
+ // Code size 34 (0x22)
+ .maxstack 7
+ .locals init (int32 V_0)
+ IL_0000: nop
+ .try
+ {
+ IL_0001: nop
+ IL_0002: ldc.i4.0
+ IL_0003: ldc.r4 0.0
+ IL_0008: ldc.i4.0
+ IL_0009: ldc.i4.0
+ IL_000a: ldc.i4.0
+ IL_000b: ldc.i4.0
+ IL_000c: ldc.i4.0
+ IL_000d: call int16 DevDiv_578214.Program::ILGEN_METHOD(uint16,
+ float32,
+ native unsigned int,
+ uint16,
+ uint8,
+ int16,
+ uint32)
+ IL_0012: pop
+ IL_0013: nop
+ IL_0014: leave.s IL_001b
+
+ } // end .try
+ catch [System.Runtime]System.Object
+ {
+ IL_0016: pop
+ IL_0017: nop
+ IL_0018: nop
+ IL_0019: leave.s IL_001b
+
+ } // end handler
+ IL_001b: ldc.i4.s 100
+ IL_001d: stloc.0
+ IL_001e: br.s IL_0020
+
+ IL_0020: ldloc.0
+ IL_0021: ret
+} // end of method Program::Main
+
+.method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+{
+ // Code size 8 (0x8)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [System.Runtime]System.Object::.ctor()
+ IL_0006: nop
+ IL_0007: ret
+} // end of method Program::.ctor
+
+} // end of class DevDiv_578214.Program
diff --git a/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.ilproj b/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.ilproj
new file mode 100644
index 0000000000..5934cf63ac
--- /dev/null
+++ b/tests/src/JIT/Regression/JitBlue/DevDiv_578214/DevDiv_578214.ilproj
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <AssemblyName>$(MSBuildProjectName)</AssemblyName>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></PropertyGroup>
+ <PropertyGroup>
+ <DebugType>None</DebugType>
+ <Optimize>True</Optimize>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="$(MSBuildProjectName).il" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup>
+</Project>