summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorVincent Lejeune <vljn@ovi.com>2013-12-07 01:49:19 +0000
committerVincent Lejeune <vljn@ovi.com>2013-12-07 01:49:19 +0000
commitd254d3111e6a1b2dfc31bbfb3abb7cc589d5800b (patch)
tree27e61aee5fbf363bf04a434b4fabb0e30fc59a35 /docs
parent7c8fbdac728f104981880783cfb1857796b5e1a2 (diff)
Add a RequireStructuredCFG Field to TargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196634 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/WritingAnLLVMBackend.rst6
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/WritingAnLLVMBackend.rst b/docs/WritingAnLLVMBackend.rst
index 35a2d164a90..429f52a3526 100644
--- a/docs/WritingAnLLVMBackend.rst
+++ b/docs/WritingAnLLVMBackend.rst
@@ -238,6 +238,12 @@ For some targets, you also need to support the following methods:
* ``getTargetLowering()``
* ``getJITInfo()``
+Some architectures, such as GPUs, do not support jumping to an arbitrary
+program location and implement branching using masked execution and loop using
+special instructions around the loop body. In order to avoid CFG modifications
+that introduce irreducible control flow not handled by such hardware, a target
+must call `setRequiresStructuredCFG(true)` when being initialized.
+
In addition, the ``XXXTargetMachine`` constructor should specify a
``TargetDescription`` string that determines the data layout for the target
machine, including characteristics such as pointer size, alignment, and