diff --git a/docs/source/prog8compiler.odg b/docs/source/prog8compiler.odg index 768bcee61..7927e519f 100644 Binary files a/docs/source/prog8compiler.odg and b/docs/source/prog8compiler.odg differ diff --git a/docs/source/prog8compiler.svg b/docs/source/prog8compiler.svg index afa3a9851..0372e81d8 100644 --- a/docs/source/prog8compiler.svg +++ b/docs/source/prog8compiler.svg @@ -1,12 +1,12 @@ - + - + - + @@ -17,6 +17,7 @@ + @@ -118,7 +119,7 @@ - + @@ -437,55 +438,77 @@ - + - - - - Generate VM code + + + - - - - - - - - - - - + + + + - + (future) + + + + + + Run in virtual machine + + - - - - Run in virtual machine + + + + Build VM program - - - - Build VM program + + + + hello.p8ir + + + + + + + + + + + + + + + Run on target machine + + + + + + + diff --git a/docs/source/todo.rst b/docs/source/todo.rst index 00f8ada95..9d99d5b81 100644 --- a/docs/source/todo.rst +++ b/docs/source/todo.rst @@ -3,7 +3,9 @@ TODO For next release ^^^^^^^^^^^^^^^^ -- update diagram in technical.rst? +- ir: asmsub contents remains blank in IR file ? +- ir: improve dead code elimination by checking chunk linkage. Does this solve the next issue?: +- ir: how to remove all unused subroutines? (the 6502 assembly codegen relies on 64tass solve this for us) ... @@ -20,9 +22,7 @@ Future Things and Ideas Compiler: - create BSS section in output program and put StStaticVariables in there with bss=true. Don't forget to add init code to zero out everything that was put in bss. If array in bss->only zero ONCE! So requires self-modifying code -- ir: Jumps go to a code block rather than a specific address(label) -> also helps future dead code elimination? - ir: add more optimizations in IRPeepholeOptimizer -- ir: how to remove all unused subroutines? (the 6502 assembly codegen relies on 64tass solve this for us) - see if we can let for loops skip the loop if end