[PATCH] D23413: CodeGen: Allow critical edge splitting with structurized CFGs
Tom Stellard via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 11 10:55:42 PDT 2016
tstellarAMD created this revision.
tstellarAMD added a reviewer: arsenm.
tstellarAMD added a subscriber: llvm-commits.
The rationale for not splitting critical edges with structurized CFGs was
that it would hurt performance. This isn't true in all cases, for example,
splitting cirtical edges to hoist code out of loops.
These sort of performance decisions should really be made by the optimization
passes.
https://reviews.llvm.org/D23413
Files:
lib/CodeGen/MachineBasicBlock.cpp
Index: lib/CodeGen/MachineBasicBlock.cpp
===================================================================
--- lib/CodeGen/MachineBasicBlock.cpp
+++ lib/CodeGen/MachineBasicBlock.cpp
@@ -962,11 +962,6 @@
const MachineFunction *MF = getParent();
- // Performance might be harmed on HW that implements branching using exec mask
- // where both sides of the branches are always executed.
- if (MF->getTarget().requiresStructuredCFG())
- return false;
-
// We may need to update this's terminator, but we can't do that if
// AnalyzeBranch fails. If this uses a jump table, we won't touch it.
const TargetInstrInfo *TII = MF->getSubtarget().getInstrInfo();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23413.67710.patch
Type: text/x-patch
Size: 676 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160811/ce0b4ec2/attachment.bin>
More information about the llvm-commits
mailing list