diff --git a/lib/Transforms/Scalar/CodeGenPrepare.cpp b/lib/Transforms/Scalar/CodeGenPrepare.cpp index 85e57661c15..1f3a13cc9ce 100644 --- a/lib/Transforms/Scalar/CodeGenPrepare.cpp +++ b/lib/Transforms/Scalar/CodeGenPrepare.cpp @@ -327,12 +327,6 @@ static void SplitEdgeNicely(TerminatorInst *TI, unsigned SuccNum, assert(isa(Dest->begin()) && "This should only be called if Dest has a PHI!"); - // Do not split edges to EH landing pads. - if (InvokeInst *Invoke = dyn_cast(TI)) { - if (Invoke->getSuccessor(1) == Dest) - return; - } - // As a hack, never split backedges of loops. Even though the copy for any // PHIs inserted on the backedge would be dead for exits from the loop, we // assume that the cost of *splitting* the backedge would be too high. diff --git a/test/CodeGen/X86/split-eh-lpad-edges.ll b/test/CodeGen/X86/split-eh-lpad-edges.ll index 281ee7782da..2cc8e54672b 100644 --- a/test/CodeGen/X86/split-eh-lpad-edges.ll +++ b/test/CodeGen/X86/split-eh-lpad-edges.ll @@ -1,5 +1,6 @@ ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | not grep jmp ; rdar://6647639 +; XFAIL: * %struct.FetchPlanHeader = type { i8*, i8*, i32, i8*, i8*, i8*, i8*, i8*, %struct.NSObject* (%struct.NSObject*, %struct.objc_selector*, ...)*, %struct.__attributeDescriptionFlags } %struct.NSArray = type { %struct.NSObject }