From 57f429fcac5d3ade255611fd663b35101e3eb228 Mon Sep 17 00:00:00 2001 From: Sean Silva Date: Mon, 20 May 2013 23:31:12 +0000 Subject: LangRef.rst: Clarify how basic blocks without named label are handled. Describe that they are assigned numbered label using the same counter as for unnamed temporaries. Based on http://llvm.org/bugs/show_bug.cgi?id=16043 and mailing list discussion. Patch by Paul Sokolovsky! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182332 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/LangRef.rst b/docs/LangRef.rst index 4d006f1..4eecd15 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -127,7 +127,8 @@ lexical features of LLVM: #. Comments are delimited with a '``;``' and go until the end of line. #. Unnamed temporaries are created when the result of a computation is not assigned to a named value. -#. Unnamed temporaries are numbered sequentially +#. Unnamed temporaries are numbered sequentially (using a per-function + incrementing counter, starting with 0). It also shows a convention that we follow in this document. When demonstrating instructions, we will follow an instruction with a comment @@ -563,7 +564,11 @@ A function definition contains a list of basic blocks, forming the CFG start with a label (giving the basic block a symbol table entry), contains a list of instructions, and ends with a :ref:`terminator ` instruction (such as a branch or function -return). +return). If explicit label is not provided, a block is assigned an +implicit numbered label, using a next value from the same counter as used +for unnamed temporaries (:ref:`see above`). For example, if a +function entry block does not have explicit label, it will be assigned +label "%0", then first unnamed temporary in that block will be "%1", etc. The first basic block in a function is special in two ways: it is immediately executed on entrance to the function, and it is not allowed -- cgit v1.1