pass: remove redundant jumps and dangling labels (#81)
In jump-table-like constructs, the natural way of writing the code can sometimes produce redundant jumps or labels. Therefore some basic cleanup steps have been proposed. This diff adds two transforms: 1. Remove unconditional jumps to a label immediately following. 2. Remove labels with no references at all. Fixes #75
This commit is contained in:
committed by
GitHub
parent
57c23b967e
commit
2e7d06bc7a
@@ -4,6 +4,7 @@ package main
|
||||
|
||||
import (
|
||||
. "github.com/mmcloughlin/avo/build"
|
||||
. "github.com/mmcloughlin/avo/operand"
|
||||
. "github.com/mmcloughlin/avo/reg"
|
||||
)
|
||||
|
||||
@@ -19,6 +20,7 @@ func main() {
|
||||
Label("label")
|
||||
Comment("Comment after label.")
|
||||
ADDQ(R8, R8)
|
||||
JMP(LabelRef("label"))
|
||||
|
||||
RET()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user