Global scheduling in a treegion framework has been proposed to exploit instruction level parallelism (ILP) at compile time.
A treegion is a single-entry / multiple-exit global scheduling scope that consists of basic blocks with control-flow forming
a tree. Because a treegion scope is nonlinear (includes multiple paths) it is distinguished from linear scopes such as traces
or superblocks. Treegion scheduling has the capability of speeding up all possible paths within the scheduling scope. This
paper presents a new global scheduling algorithm using treegions called Tree Traversal Scheduling (TTS). Efficient, incremental
data-flow analysis in support of TTS is also presented. Performance results are compared to the scheduling of the linear regions
that result from the decomposition of treegions. We refer to these resultant linear regions as linear treegions (LT) and consider
them analogous to superblocks with the same amount of code expansion as the base treegion. Experimental results for TTS scheduling
show a 35% speedup compared to basic block (BB) scheduling and a 4% speedup compared to LT scheduling.