[AArch64] [Windows] SEH opcodes should be scheduling boundaries.
authorEli Friedman <efriedma@codeaurora.org>
Tue, 30 Oct 2018 19:24:51 +0000 (19:24 +0000)
committerEli Friedman <efriedma@codeaurora.org>
Tue, 30 Oct 2018 19:24:51 +0000 (19:24 +0000)
commit93d0129b78ca6b9b84ad0af1e2e42b9d3d92754c
tree25c7346ae3800a5b4ef3dadc0badda6bd7ae169f
parent1f786b8d959e4d54e4c61254dcecb9ab8112851e
[AArch64] [Windows] SEH opcodes should be scheduling boundaries.

Prevents the post-RA scheduler from modifying the prologue sequences
emitting by frame lowering. This is roughly similar to what we do for
other targets: TargetInstrInfo::isSchedulingBoundary checks
isPosition(), which checks for CFI_INSTRUCTION.

isSEHInstruction is taken from D50288; it'll land with whatever patch
lands first.

Differential Revision: https://reviews.llvm.org/D53851

llvm-svn: 345634
llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.h
llvm/test/CodeGen/AArch64/wineh1.mir
llvm/test/CodeGen/AArch64/wineh2.mir
llvm/test/CodeGen/AArch64/wineh3.mir
llvm/test/CodeGen/AArch64/wineh4.mir
llvm/test/CodeGen/AArch64/wineh5.mir
llvm/test/CodeGen/AArch64/wineh6.mir
llvm/test/CodeGen/AArch64/wineh7.mir