]> granicus.if.org Git - llvm/commit
CodeGen: Allow small copyable blocks to "break" the CFG.
authorKyle Butt <kyle+llvm@iteratee.net>
Tue, 10 Jan 2017 23:04:30 +0000 (23:04 +0000)
committerKyle Butt <kyle+llvm@iteratee.net>
Tue, 10 Jan 2017 23:04:30 +0000 (23:04 +0000)
commitada6595a526d71df04988eb0a4b4fe84df398ded
tree4c83d26a15416cef84ca179748260d8663ac6221
parentd8c5040a18d991281e69411cdf77061c7155750b
CodeGen: Allow small copyable blocks to "break" the CFG.

When choosing the best successor for a block, ordinarily we would have preferred
a block that preserves the CFG unless there is a strong probability the other
direction. For small blocks that can be duplicated we now skip that requirement
as well.

Differential revision: https://reviews.llvm.org/D27742

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291609 91177308-0d34-0410-b5e6-96231b3b80d8
58 files changed:
lib/CodeGen/MachineBlockPlacement.cpp
test/CodeGen/AArch64/addsub.ll
test/CodeGen/AArch64/arm64-atomic.ll
test/CodeGen/AArch64/arm64-ccmp.ll
test/CodeGen/AArch64/arm64-shrink-wrapping.ll
test/CodeGen/AArch64/compare-branch.ll
test/CodeGen/AArch64/logical_shifted_reg.ll
test/CodeGen/AArch64/tbz-tbnz.ll
test/CodeGen/AMDGPU/branch-relaxation.ll
test/CodeGen/AMDGPU/si-annotate-cf-noloop.ll
test/CodeGen/AMDGPU/skip-if-dead.ll
test/CodeGen/AMDGPU/uniform-cfg.ll
test/CodeGen/ARM/arm-and-tst-peephole.ll
test/CodeGen/ARM/atomic-op.ll
test/CodeGen/ARM/atomic-ops-v8.ll
test/CodeGen/ARM/cmpxchg-weak.ll
test/CodeGen/ARM/machine-cse-cmp.ll
test/CodeGen/Mips/brconeq.ll
test/CodeGen/Mips/brconeqk.ll
test/CodeGen/Mips/brcongt.ll
test/CodeGen/Mips/brconlt.ll
test/CodeGen/Mips/brconnez.ll
test/CodeGen/Mips/llvm-ir/ashr.ll
test/CodeGen/Mips/micromips-compact-branches.ll
test/CodeGen/PowerPC/misched-inorder-latency.ll
test/CodeGen/PowerPC/tail-dup-break-cfg.ll [new file with mode: 0644]
test/CodeGen/PowerPC/tail-dup-layout.ll
test/CodeGen/SPARC/sjlj.ll
test/CodeGen/SystemZ/asm-18.ll
test/CodeGen/SystemZ/cond-store-01.ll
test/CodeGen/SystemZ/cond-store-02.ll
test/CodeGen/SystemZ/cond-store-03.ll
test/CodeGen/SystemZ/cond-store-04.ll
test/CodeGen/SystemZ/cond-store-05.ll
test/CodeGen/SystemZ/cond-store-06.ll
test/CodeGen/SystemZ/int-cmp-37.ll
test/CodeGen/SystemZ/int-cmp-40.ll
test/CodeGen/SystemZ/int-cmp-44.ll
test/CodeGen/SystemZ/int-cmp-48.ll
test/CodeGen/SystemZ/tdc-06.ll
test/CodeGen/Thumb/thumb-shrink-wrapping.ll
test/CodeGen/Thumb2/cbnz.ll
test/CodeGen/Thumb2/ifcvt-compare.ll
test/CodeGen/Thumb2/v8_IT_4.ll
test/CodeGen/WebAssembly/phi.ll
test/CodeGen/X86/2008-11-29-ULT-Sign.ll
test/CodeGen/X86/add.ll
test/CodeGen/X86/avx-splat.ll
test/CodeGen/X86/avx512-cmp.ll
test/CodeGen/X86/bt.ll
test/CodeGen/X86/critical-edge-split-2.ll
test/CodeGen/X86/fp-une-cmp.ll
test/CodeGen/X86/jump_sign.ll
test/CodeGen/X86/machine-cse.ll
test/CodeGen/X86/shift-double.ll
test/CodeGen/X86/sink-hoist.ll
test/CodeGen/X86/sse-scalar-fp-arith.ll
test/CodeGen/X86/testb-je-fusion.ll