Compute instruction heights through a trace.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 1 Aug 2012 22:36:00 +0000 (22:36 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 1 Aug 2012 22:36:00 +0000 (22:36 +0000)
commitc7f44b8b8fca87cdd28ffe420c3b87141d88c099
treea5337172ca9cf3d27e1039a56ced7ecce2dcad21
parentcc5fc665e3f68bd70b42516adaf4a2f9879f2940
Compute instruction heights through a trace.

The height on an instruction is the minimum number of cycles from the
instruction is issued to the end of the trace. Heights are computed for
all instructions in and below the trace center block.

The method for computing heights is different from the depth
computation. As we visit instructions in the trace bottom-up, heights of
used instructions are pushed upwards. This way, we avoid scanning long
use lists, looking for uses in the current trace.

At each basic block boundary, a list of live-in registers and their
minimum heights is saved in the trace block info. These live-in lists
are used when restarting depth computations on a trace that
converges with an already computed trace. They will also be used to
accurately compute the critical path length.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161138 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/MachineTraceMetrics.cpp
lib/CodeGen/MachineTraceMetrics.h