History log of /llvm-project/llvm/lib/CodeGen/LiveVariables.cpp (Results 101 – 125 of 252)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# d599dcd7 04-Jan-2010 David Greene <greened@obbligato.org>

Change errs() to dbgs().

llvm-svn: 92532


# defc4708 01-Dec-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Move PHIElimination::isLiveOut method to LiveVariables.

We want LiveVariables clients to use methods rather than accessing the
getVarInfo data structure directly. That way it will be possible to cha

Move PHIElimination::isLiveOut method to LiveVariables.

We want LiveVariables clients to use methods rather than accessing the
getVarInfo data structure directly. That way it will be possible to change the
LiveVariables representation.

llvm-svn: 90240

show more ...


# 1d31fc91 01-Dec-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR5614: parts of a physical register def may be killed the rest.

llvm-svn: 90180


# bc630aca 21-Nov-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Be more clever about calculating live variables through new basic blocks.

When splitting a critical edge, the registers live through the edge are:

- Used in a PHI instruction, or
- Live out from th

Be more clever about calculating live variables through new basic blocks.

When splitting a critical edge, the registers live through the edge are:

- Used in a PHI instruction, or
- Live out from the predecessor, and
- Live in to the successor.

This allows the coalescer to eliminate even more phi joins.

llvm-svn: 89530

show more ...


# d190b821 13-Nov-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR5410: LiveVariables lost subreg def:

D0<def,dead> = ...
...
= S0<use, kill>
S0<def> = ...
...
D0<def> =

The first D0 def is correctly marked dead, however, livevariabl

Fix PR5410: LiveVariables lost subreg def:

D0<def,dead> = ...
...
= S0<use, kill>
S0<def> = ...
...
D0<def> =

The first D0 def is correctly marked dead, however, livevariables should have
added an implicit def of S0 or we end up with a use without a def.

llvm-svn: 88690

show more ...


# 4f7fd3ba 11-Nov-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Fix liveness calculation when splitting critical edges during PHI elimination.

- Edges are split before any phis are eliminated, so the code is SSA.

- Create a proper IR BasicBlock for the split ed

Fix liveness calculation when splitting critical edges during PHI elimination.

- Edges are split before any phis are eliminated, so the code is SSA.

- Create a proper IR BasicBlock for the split edges.

- LiveVariables::addNewBlock now has same syntax as
MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out
set rather than successor live-in set.

This feature still causes some miscompilations.

llvm-svn: 86867

show more ...


# 4453dc97 10-Nov-2009 Jakob Stoklund Olesen <stoklund@2pi.dk>

Teach PHIElimination to split critical edges when -split-phi-edges is enabled.

Critical edges leading to a PHI node are split when the PHI source variable is
live out from the predecessor block. Thi

Teach PHIElimination to split critical edges when -split-phi-edges is enabled.

Critical edges leading to a PHI node are split when the PHI source variable is
live out from the predecessor block. This help the coalescer eliminate more
PHI joins.

llvm-svn: 86725

show more ...


Revision tags: llvmorg-2.6.0
# 2f61e094 14-Oct-2009 Evan Cheng <evan.cheng@apple.com>

When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it.

llvm-svn: 84153


# a21aac38 24-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more ac

Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate.

llvm-svn: 82676

show more ...


# 262f86ed 23-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR5024. LiveVariables physical register defs should *commit* only after all
of the defs are processed.
Also fix a implicit_def propagation bug: a implicit_def of a physical register
should be app

Fix PR5024. LiveVariables physical register defs should *commit* only after all
of the defs are processed.
Also fix a implicit_def propagation bug: a implicit_def of a physical register
should be applied to uses of the sub-registers.

llvm-svn: 82616

show more ...


# 08d1e41c 22-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR5024. LiveVariables::FindLastPartialDef should return a set of sub-registers that were defined by the last partial def, not just a single sub-register.

llvm-svn: 82535


# 30ebdc43 23-Aug-2009 Chris Lattner <sabre@nondot.org>

remove the last uses of Config/alloca.h

llvm-svn: 79873


# a6f074fb 23-Aug-2009 Chris Lattner <sabre@nondot.org>

remove various std::ostream version of printing methods from
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealin

remove various std::ostream version of printing methods from
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealing his fun. ;-)

llvm-svn: 79813

show more ...


# 5ea74d55 31-Jul-2009 Dan Gohman <gohman@apple.com>

Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage
shouldn't do AU.setPreservesCFG(), because even though CodeGen passes
don't modify the LLVM IR CFG, they may modify the MachineFuncti

Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage
shouldn't do AU.setPreservesCFG(), because even though CodeGen passes
don't modify the LLVM IR CFG, they may modify the MachineFunction CFG,
and passes like MachineLoop are registered with isCFGOnly set to true.

llvm-svn: 77691

show more ...


# 54347565 31-Jul-2009 Daniel Dunbar <daniel@zuster.org>

Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many
failures when building assorted projects with clang.

--- Reverse-merging r77654 into '.':
U include/llvm/CodeGen/Pass

Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many
failures when building assorted projects with clang.

--- Reverse-merging r77654 into '.':
U include/llvm/CodeGen/Passes.h
U include/llvm/CodeGen/MachineFunctionPass.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/LazyLiveness.h
U include/llvm/CodeGen/SelectionDAGISel.h
D include/llvm/CodeGen/MachineFunctionAnalysis.h
U include/llvm/Function.h
U lib/Target/CellSPU/SPUISelDAGToDAG.cpp
U lib/Target/PowerPC/PPCISelDAGToDAG.cpp
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/MachineVerifier.cpp
U lib/CodeGen/MachineFunction.cpp
U lib/CodeGen/PrologEpilogInserter.cpp
U lib/CodeGen/MachineLoopInfo.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
D lib/CodeGen/MachineFunctionAnalysis.cpp
D lib/CodeGen/MachineFunctionPass.cpp
U lib/CodeGen/LiveVariables.cpp

llvm-svn: 77661

show more ...


# bcb44baa 31-Jul-2009 Dan Gohman <gohman@apple.com>

Manage MachineFunctions with an analysis Pass instead of the Annotable
mechanism. To support this, make MachineFunctionPass a little more
complete.

llvm-svn: 77654


# ba2410b7 06-Jul-2009 Evan Cheng <evan.cheng@apple.com>

Avoid adding a duplicate def. This fixes PR4478.

llvm-svn: 74857


# c6a8d0db 20-Jun-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR4419: handle defs of partial uses.

llvm-svn: 73816


# d29fc665 03-Jun-2009 Evan Cheng <evan.cheng@apple.com>

If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
EAX = ..., AX<imp-def>
...
= AX

This creates a double-def. Appar

If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
EAX = ..., AX<imp-def>
...
= AX

This creates a double-def. Apparently this used to be necessary but is no longer needed.

Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me.

llvm-svn: 72755

show more ...


# 7d287cb7 26-May-2009 Jeffrey Yasskin <jyasskin@google.com>

LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many
entries as there are basic blocks in the function. LiveVariables::getVarInfo
creates a VarInfo struct for every register i

LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many
entries as there are basic blocks in the function. LiveVariables::getVarInfo
creates a VarInfo struct for every register in the function, leading to
quadratic space use. This patch changes the BitVector to a SparseBitVector,
which doesn't help the worst-case memory use but does reduce the actual use in
very long functions with short-lived variables.

llvm-svn: 72426

show more ...


# 7061ee96 26-May-2009 Evan Cheng <evan.cheng@apple.com>

Eliminate VarInfo::UsedBlocks.

llvm-svn: 72411


Revision tags: llvmorg-2.5.0
# f1e873a2 20-Jan-2009 Evan Cheng <evan.cheng@apple.com>

Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine inst

Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref.

llvm-svn: 62617

show more ...


# cb181bb2 21-Nov-2008 Devang Patel <dpatel@apple.com>

Silence unused variable warnings.

llvm-svn: 59841


# 8fed4ce0 13-Nov-2008 Dan Gohman <gohman@apple.com>

Use find_first/find_next to iterate through all the set bits in a
BitVector, instead of manually testing each bit.

llvm-svn: 59246


Revision tags: llvmorg-2.4.0
# 0d1e9a8e 03-Oct-2008 Dan Gohman <gohman@apple.com>

Switch the MachineOperand accessors back to the short names like
isReg, etc., from isRegister, etc.

llvm-svn: 57006


1234567891011