Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Basic block
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Definition== The code in a basic block has: * One [[entry point]], meaning that no code within it is the destination of a [[jump instruction]] anywhere in the program. * One exit point, meaning that only the last instruction can cause the program to begin executing code in a different basic block. Under these circumstances, whenever the first instruction in a basic block is executed, the rest of the instructions are necessarily executed exactly once and in order.<ref>{{cite conference |chapter=Masking wrong-successor Control Flow Errors employing data redundancy |last1=Yousefi |first1=Javad |title=2015 5th International Conference on Computer and Knowledge Engineering (ICCKE) |date= 2015|publisher=IEEE |pages=201β205 |doi=10.1109/ICCKE.2015.7365827 |isbn=978-1-4673-9280-8 }}</ref><ref>[http://portal.acm.org/citation.cfm?id=808480 "Global Common Subexpression Elimination"] by John Cocke.</ref> The code may be [[source code]], [[assembly code]], or some other sequence of instructions. More formally, a sequence of instructions forms a basic block if: * The instruction in each position [[dominator (graph theory)|dominates]] (always executes before) all those in later positions. * No other instruction executes between two instructions in the sequence. This definition is more general than the intuitive one in some ways. For example, it allows unconditional jumps to labels not targeted by other jumps. This definition embodies the properties that make basic blocks easy to work with when constructing an algorithm. The blocks to which control may transfer after reaching the end of a block are called that block's ''successors'', while the blocks from which control may have come when entering a block are called that block's ''predecessors''. The start of a basic block may be jumped to from more than one location.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)