History log of /llvm-project/llvm/lib/CodeGen/LiveVariables.cpp (Results 126 – 150 of 252)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# ae9d9f4d 21-Sep-2008 Dan Gohman <gohman@apple.com>

Factor out code into HandleVirtRegDef, for consistency with
Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check
for register zero, and redundant checks for isPhysicalRegister.

llvm-svn: 56412


# 14738120 14-Aug-2008 Owen Anderson <resistor@mac.com>

Use SmallSet instead of std::set to save allocations.

llvm-svn: 54810


# a102290b 04-Aug-2008 Owen Anderson <resistor@mac.com>

- Fix SelectionDAG to generate correct CFGs.
- Add a basic machine-level dead block eliminator.

These two have to go together, since many other parts of the code generator are unable to handle the u

- Fix SelectionDAG to generate correct CFGs.
- Add a basic machine-level dead block eliminator.

These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created.

llvm-svn: 54333

show more ...


# 7d98a48f 03-Jul-2008 Evan Cheng <evan.cheng@apple.com>

- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remov

- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.

llvm-svn: 53097

show more ...


# 9f8b66f3 03-Jul-2008 Evan Cheng <evan.cheng@apple.com>

Use std::replace instead of std::find and push_back.

llvm-svn: 53063


# 7a265d83 03-Jul-2008 Evan Cheng <evan.cheng@apple.com>

- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill mark

- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers.
- CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead.

llvm-svn: 53061

show more ...


# 413f7d90 27-Jun-2008 Owen Anderson <resistor@mac.com>

Use a SmallSet when we can to reduce memory allocations.
This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables.

llvm-svn: 52819


# 39b07db7 25-Jun-2008 Dan Gohman <gohman@apple.com>

Fix the text in an assert string.

llvm-svn: 52744


# c44659b9 23-Jun-2008 Bill Wendling <isanbard@gmail.com>

This situation can occur:

,------.
| |
| v
| t2 = phi ... t1 ...
| |
| v
| t1 = ...
| ... = ... t1 ...
| |
`------'

where there

This situation can occur:

,------.
| |
| v
| t2 = phi ... t1 ...
| |
| v
| t1 = ...
| ... = ... t1 ...
| |
`------'

where there is a use in a PHI node that's a predecessor to the defining
block. We don't want to mark all predecessors as having the value "alive" in
this case. Also, the assert was too restrictive and didn't handle this case.

llvm-svn: 52655

show more ...


Revision tags: llvmorg-2.3.0
# e45b8f89 16-Apr-2008 Evan Cheng <evan.cheng@apple.com>

Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential

Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme.

This patch also fixed a couple of nasty corner cases.

llvm-svn: 49784

show more ...


# d8616064 02-Apr-2008 Evan Cheng <evan.cheng@apple.com>

Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a phy

Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping.

llvm-svn: 49105

show more ...


# 44c0b4f7 19-Mar-2008 Evan Cheng <evan.cheng@apple.com>

Fix live variables issues:
1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register

Fix live variables issues:
1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue.
2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register:
= EAX, AX<imp-use,kill>
...
AX =
In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things.

llvm-svn: 48521

show more ...


# 63254466 05-Mar-2008 Evan Cheng <evan.cheng@apple.com>

Refactor code. Remove duplicated functions that basically do the same thing as
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.

llvm-svn: 47927


# 15526b2e 21-Feb-2008 Bill Wendling <isanbard@gmail.com>

Clear PhysRegPartUse for the sub register as well.

llvm-svn: 47453


# eac9e5ef 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

Remove one of the fixmes that I put in there. From Evan:

No need to go up more levels. A def of a register also sets its sub-registers
(so if PhysRegInfo[SuperReg] is NULL, it means SuperReg's super

Remove one of the fixmes that I put in there. From Evan:

No need to go up more levels. A def of a register also sets its sub-registers
(so if PhysRegInfo[SuperReg] is NULL, it means SuperReg's super registers are
not previously defined).

llvm-svn: 47399

show more ...


# cf2d1aa4 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

Improve some comments explaining the "handle kills" stuff better.

llvm-svn: 47395


# 0b722196 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

Fix comment.

llvm-svn: 47389


# b912351e 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

Added some comments and reformatted others. No functionality change.

Added two "FIXMEs" for code that looks dubious to me (but I could be
wrong).

llvm-svn: 47366


# 406fdbd3 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

More constification of things. More comments added. No functionality
changes. (Sorry for any formatting changes that creeped in.)

llvm-svn: 47362


# 59cc1595 20-Feb-2008 Bill Wendling <isanbard@gmail.com>

No functionality change:

- Constified some MachineOperand values.
- Added/Modified some comments.

llvm-svn: 47358


Revision tags: llvmorg-2.2.0
# 3a4be0fd 10-Feb-2008 Dan Gohman <gohman@apple.com>

Rename MRegisterInfo to TargetRegisterInfo.

llvm-svn: 46930


# 8d78b059 05-Feb-2008 Evan Cheng <evan.cheng@apple.com>

If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead).

llvm-svn: 46763


# 2a8a4856 24-Jan-2008 Owen Anderson <resistor@mac.com>

Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables.

llvm-svn: 46295


# 897aed91 15-Jan-2008 Owen Anderson <resistor@mac.com>

Move some calls to getVRegDef higher in the callgraph, so they don't get executed as frequently in performance sensitive code.

llvm-svn: 46027


# 1ba66e0c 15-Jan-2008 Owen Anderson <resistor@mac.com>

Remove DefInst from LiveVariables::VarInfo. Use the facilities on MachineRegisterInfo instead.

llvm-svn: 46016


1234567891011