[llvm-commits] [llvm] r125709 - /llvm/trunk/docs/ProgrammersManual.html

Tobias Grosser grosser at fim.uni-passau.de
Wed Feb 16 19:52:20 PST 2011


On 02/16/2011 09:19 PM, Nick Lewycky wrote:
> Author: nicholas
> Date: Wed Feb 16 20:19:22 2011
> New Revision: 125709
>
> URL: http://llvm.org/viewvc/llvm-project?rev=125709&view=rev
> Log:
> Fix thinko, basic blocks are SESE. The exits may have many edges though.
>
> Modified:
>      llvm/trunk/docs/ProgrammersManual.html
>
> Modified: llvm/trunk/docs/ProgrammersManual.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ProgrammersManual.html?rev=125709&r1=125708&r2=125709&view=diff
> ==============================================================================
> --- llvm/trunk/docs/ProgrammersManual.html (original)
> +++ llvm/trunk/docs/ProgrammersManual.html Wed Feb 16 20:19:22 2011
> @@ -3856,7 +3856,7 @@
>   Class</a><br>
>   Superclass:<a href="#Value"><tt>Value</tt></a></p>
>
> -<p>This class represents a single entry multiple exit section of the code,
> +<p>This class represents a single entry single exit section of the code,

Hi Nick,

for me this sentence is a little confusing. What do you consider the 
entry and the exit of a basic block? As far as I understand single entry 
single exit regions commonly refer to subgraphs of the CFG that have 
only a single entry EDGE and a single exit EDGE. Following this 
definition a basic block can actually be a multiple entry multiple exit 
region. You could argue the first and the last instruction of a basic 
block are the single entry and the single exit. However, without 
explanation this is not obvious to me.

What about changing the sentence to:

"The BasicBlock class represents a section of code that is executed 
sequentially and does not contain any diverging control flow."

or to rewrite more of this

"The BasicBlock class represents a list of instructions that is executed 
sequentially without diverging control flow in between.
Matching the language definition, the last element of this list of 
instructions is always a terminator instruction (a subclass of the 
TerminatorInst class). The terminator instruction is the only 
instruction after which the control flow may diverge."

Cheers
Tobi



More information about the llvm-commits mailing list