Create a MachineBasicBlock for created IR-level BasicBlock
authorJessica Paquette <jpaquette@apple.com>
Tue, 1 May 2018 20:49:42 +0000 (20:49 +0000)
committerJessica Paquette <jpaquette@apple.com>
Tue, 1 May 2018 20:49:42 +0000 (20:49 +0000)
commit78536664386887a26157fa90fceb003edbe80290
treeb52ea347383b6fe9621d259673e14a060b04c1e1
parent82415e26146e9ca68bb2274b6f6d0a16e84d8602
Create a MachineBasicBlock for created IR-level BasicBlock

While running the lit tests for the most recent version of D45916
(https://reviews.llvm.org/D45916), I found that a couple tests for this pass
suddenly started segfaulting. Since the outliner wasn't actually doing anything
to the code in either of these tests I got curious.

I found that the pass doesn’t completely create the machine-level constructs
necessary to actually add a MachineFunction and MachineBasicBlock to the
module. This patch adds in those missing bits. After this, adding the
outliner before this pass won’t cause it to segfault.

You can recreate this behaviour by adding the MachineOutliner directly before
the pass and having it return false immediately.

https://reviews.llvm.org/D46330

llvm-svn: 331307
llvm/lib/Target/X86/X86RetpolineThunks.cpp