llvm-project/llvm/lib
Chris Lattner 7efcdb7ca3 Big change to compute logical value numbers for each LiveRange added to an
Interval.  This generalizes the isDefinedOnce mechanism that we used before
to help us coallesce ranges that overlap.  As part of this, every logical
range with a different value is assigned a different number in the interval.
For example, for code that looks like this:

0  X = ...
4  X += ...
  ...
N    = X

We now generate a live interval that contains two ranges: [2,6:0),[6,?:1)
reflecting the fact that there are two different values in the range at
different positions in the code.

Currently we are not using this information at all, so this just slows down
liveintervals.  In the future, this will change.

Note that this change also substantially refactors the joinIntervalsInMachineBB
method to merge the cases for virt-virt and phys-virt joining into a single
case, adds comments, and makes the code a bit easier to follow.

llvm-svn: 15154
2004-07-24 02:59:07 +00:00
..
Analysis Clean up reference counting to stop "leaking" alias sets 2004-07-22 07:58:18 +00:00
AsmParser bug 122: 2004-07-18 00:08:11 +00:00
Bytecode bug 122: 2004-07-18 00:18:30 +00:00
CodeGen Big change to compute logical value numbers for each LiveRange added to an 2004-07-24 02:59:07 +00:00
Debugger bug 122: 2004-07-18 00:44:37 +00:00
ExecutionEngine bug 122: 2004-07-18 00:41:27 +00:00
Support These files don't need to include <iostream> since they include "Support/Debug.h". 2004-07-21 20:50:33 +00:00
System A description of what this library is about, reference to the documentation 2004-07-18 22:33:08 +00:00
Target Running list of bugs, unimplemented features, currently broken tests, until we 2004-07-23 22:37:22 +00:00
Transforms This is a trivial dead store elimination pass. It very very simple and 2004-07-22 08:00:28 +00:00
VMCore Fix problem with inserting FunctionPasses that depend on ImmutablePasses 2004-07-23 19:35:50 +00:00
Makefile CBackend is no longer here 2004-02-13 23:29:37 +00:00