This wasn't true
[fw/sdcc] / doc / sdccman.lyx
index b961c03f6b1b3112e83bb261fbd9fb75c89b3a53..895701693d4d5fbe47f98d670c439a964b1e9913 100644 (file)
@@ -1986,12 +1986,20 @@ Will not do loop reversal optimization.
 \layout List
 \labelwidthstring 00.00.0000
 
+---
+\series bold 
+nolabelopt
+\series default 
+ Will not optimize labels (makes the dumpfiles more readable).
+\layout List
+\labelwidthstring 00.00.0000
+
 
 \series bold 
 ---no-xinit-opt
 \series default 
- This will disable the memcpy of initialized data in far space from code
- space
+ Will not memcpy initialized data in far space from code space.
+ This saves a few bytes in code space if you don't have initialized data.
 \layout Subsubsection
 
 Other Options
@@ -7683,6 +7691,9 @@ cc@sdcc.sourceforge.net'.
  in locating optimization problems.
 \layout Section
 
+Compiler internals
+\layout Subsection
+
 The anatomy of the compiler
 \layout Standard
 
@@ -8935,10 +8946,53 @@ mov dpl,a
 \SpecialChar ~
 \SpecialChar ~
 ret
-\size default 
+\newline 
 
+\layout Subsection
+
+A few words about basic block successors, predecessors and dominators
+\layout Standard
+
+Successors are basic blocks that might execute after this basic block.
+\newline 
+Predecessors are basic blocks that might execute before reaching this basic
+ block.
 \newline 
+Dominators are basic blocks that WILL execute before reaching this basic
+ block.
+\newline 
+
+\layout Standard
+
+[basic block 1]
+\layout Standard
+
+if (something)
+\layout Standard
+
+[basic block 2]
+\layout Standard
+
+else
+\layout Standard
+
+[basic block 3]
+\layout Standard
+
+[basic block 4]
+\newline 
+
+\layout Standard
+
+a) succList of [BB2] = [BB4], of [BB3] = [BB4], of [BB1] = [BB2,BB3]
+\layout Standard
+
+b) predList of [BB2] = [BB1], of [BB3] = [BB1], of [BB4] = [BB2,BB3]
+\layout Standard
 
+c) domVect of [BB4] = BB1 ...
+ here we are not sure if BB2 or BB3 was executed but we are SURE that BB1
+ was executed.
 \layout Section
 
 Acknowledgments