summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2016-03-09 04:17:36 +0000
committerDan Gohman <dan433584@gmail.com>2016-03-09 04:17:36 +0000
commitddfa1a6c18afd4cfe78778e7f29145801b6d8fbe (patch)
tree35bfca092ea550a269016b27d22b63675c7e7521 /llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
parent05e5cbf4f2718f6768d424c887c375fcc36be319 (diff)
downloadbcm5719-llvm-ddfa1a6c18afd4cfe78778e7f29145801b6d8fbe.tar.gz
bcm5719-llvm-ddfa1a6c18afd4cfe78778e7f29145801b6d8fbe.zip
[WebAssembly] Update comments about irreducible control flow.
llvm-svn: 262995
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
index be77222f873..1a7716a5d94 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
@@ -13,6 +13,10 @@
/// loops; they appear as CFG cycles that are not recorded in MachineLoopInfo
/// due to being unnatural.
///
+/// Note that LLVM has a generic pass that lowers irreducible control flow, but
+/// it linearizes control flow, turning diamonds into two triangles, which is
+/// both unnecessary and undesirable for WebAssembly.
+///
/// TODO: The transformation implemented here handles all irreducible control
/// flow, without exponential code-size expansion, though it does so by creating
/// inefficient code in many cases. Ideally, we should add other
OpenPOWER on IntegriCloud