diff --git a/llvm/lib/Transforms/Utils/CodeLayout.cpp b/llvm/lib/Transforms/Utils/CodeLayout.cpp index c8c0823daaa6b..f020637ee186d 100644 --- a/llvm/lib/Transforms/Utils/CodeLayout.cpp +++ b/llvm/lib/Transforms/Utils/CodeLayout.cpp @@ -850,7 +850,7 @@ class ExtTSPImpl { // Attach (a part of) ChainPred after the last node of ChainSucc. for (JumpT *Jump : ChainSucc->Nodes.back()->OutJumps) { - const NodeT *DstBlock = Jump->Source; + const NodeT *DstBlock = Jump->Target; if (DstBlock->CurChain != ChainPred) continue; size_t Offset = DstBlock->CurIndex; diff --git a/llvm/test/CodeGen/X86/code_placement_ext_tsp_large.ll b/llvm/test/CodeGen/X86/code_placement_ext_tsp_large.ll index 314df786b3e80..cee8489e9aaea 100644 --- a/llvm/test/CodeGen/X86/code_placement_ext_tsp_large.ll +++ b/llvm/test/CodeGen/X86/code_placement_ext_tsp_large.ll @@ -81,19 +81,18 @@ define void @func_large() !prof !0 { ; CHECK: b7 ; CHECK: b9 ; -; An expected output with chain-split-threshold=1 (disabling splitting) -- the -; increase of the layout score is smaller, ~7%: +; An expected output with chain-split-threshold=1 (disabling split point enumeration) ; ; CHECK2-LABEL: Applying ext-tsp layout ; CHECK2: original layout score: 9171074274.27 -; CHECK2: optimized layout score: 9810644873.57 +; CHECK2: optimized layout score: 10844307310.87 ; CHECK2: b0 ; CHECK2: b2 ; CHECK2: b3 ; CHECK2: b4 ; CHECK2: b5 -; CHECK2: b1 ; CHECK2: b8 +; CHECK2: b1 ; CHECK2: b6 ; CHECK2: b7 ; CHECK2: b9