Reject really weird coalescer case when trying to merge identical subregisters
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 29 Apr 2010 23:47:46 +0000 (23:47 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 29 Apr 2010 23:47:46 +0000 (23:47 +0000)
commitf07fc974d330fa355ba60f23828657f54f97e5aa
treefba33b73ee81fc2c6d45f2aa6c4e313c8747cacb
parent8d0e1bcc921c942e979b0925051c663590bd618f
Reject really weird coalescer case when trying to merge identical subregisters
of different register classes. e.g.

  %reg1048:3<def> = EXTRACT_SUBREG %RAX<kill>, 3

Where %reg1048 is a GR32 register. This is not impossible to handle, but it is
pretty hard and very rare.

This should unbreak the dragonegg builder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102672 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SimpleRegisterCoalescing.cpp
test/CodeGen/X86/2010-04-29-CoalescerCrash.ll [new file with mode: 0644]