History log of /llvm-project-15.0.7/llvm/lib/CodeGen/SplitKit.cpp (Results 151 – 175 of 279)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 858afbb6 05-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Sign error

llvm-svn: 128963


# 5c482cd3 05-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Don't crash when a value is defined after the last split point.

llvm-svn: 128962


# fe6e07fd 05-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Use std::unique instead of a SmallPtrSet to ensure unique instructions in UseSlots.

This allows us to always keep the smaller slot for an instruction which is what
we want when a register has early

Use std::unique instead of a SmallPtrSet to ensure unique instructions in UseSlots.

This allows us to always keep the smaller slot for an instruction which is what
we want when a register has early clobber defines.

Drop the UsingInstrs set and the UsingBlocks map. They are no longer needed.

llvm-svn: 128886

show more ...


# d93b0e3c 05-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Stop precomputing last split points, query the SplitAnalysis cache on demand.

llvm-svn: 128875


# 50b2db8a 05-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Cache the fairly expensive last split point computation and provide a fast
inlined path for the common case.

Most basic blocks don't contain a call that may throw, so the last split point
os simply

Cache the fairly expensive last split point computation and provide a fast
inlined path for the common case.

Most basic blocks don't contain a call that may throw, so the last split point
os simply the first terminator.

llvm-svn: 128874

show more ...


# 8933907b 04-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Stop caching basic block index ranges now that SlotIndexes can keep up.

llvm-svn: 128821


# e991f728 29-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Recompute register class and hint for registers created during spilling.

The spill weight is not recomputed for an unspillable register - it stays infinite.

llvm-svn: 128490


# 12877b8a 29-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Handle the special case when all uses follow the last split point.

llvm-svn: 128450


# bd6b86e4 27-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Amend debug output.

llvm-svn: 128398


Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2
# 35502423 20-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Process all dead defs after rematerializing during splitting.

llvm-svn: 127973


# c099dde9 18-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Be more accurate about the slot index reading a register when dealing with defs
and early clobbers.

Assert when trying to find an undefined value.

llvm-svn: 127856


# 8630840c 17-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Dead code elimination may separate the live interval into multiple connected components.

I have convinced myself that it can only happen when a phi value dies. When it
happens, allocate new virtual

Dead code elimination may separate the live interval into multiple connected components.

I have convinced myself that it can only happen when a phi value dies. When it
happens, allocate new virtual registers for the components.

llvm-svn: 127827

show more ...


# 315b42c3 17-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Rewrite instructions as part of ConnectedVNInfoEqClasses::Distribute.

llvm-svn: 127779


# 32210de3 15-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Preserve both isPHIDef and isDefByCopy bits when copying parent values.

llvm-svn: 127697


# ea5ebfed 08-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Delete dead code after rematerializing.

LiveRangeEdit::eliminateDeadDefs() will eventually be used by coalescing,
splitting, and spilling for dead code elimination. It can delete chains of dead
inst

Delete dead code after rematerializing.

LiveRangeEdit::eliminateDeadDefs() will eventually be used by coalescing,
splitting, and spilling for dead code elimination. It can delete chains of dead
instructions as long as there are no dependency loops.

llvm-svn: 127287

show more ...


Revision tags: llvmorg-2.9.0-rc1
# 27e0a4ab 05-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Work around a coalescer bug.

The coalescer can in very rare cases leave too large live intervals around after
rematerializing cheap-as-a-move instructions.

Linear scan doesn't really care, but live

Work around a coalescer bug.

The coalescer can in very rare cases leave too large live intervals around after
rematerializing cheap-as-a-move instructions.

Linear scan doesn't really care, but live range splitting gets very confused
when a live range is killed by a ghost instruction.

I will fix this properly in the coalescer after 2.9 branches.

llvm-svn: 127096

show more ...


# d4f78895 04-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Tweak debug output. No functional changes.

llvm-svn: 127006


# 1a69e233 04-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Use an IndexedMap instead of a DenseMap for the live-out cache.

This speeds up updateSSA() so it only accounts for 5% of the live range
splitting time.

llvm-svn: 126972


# 9a6382fc 03-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the time.

This speeds up the greedy register allocator by 15%.
DenseMap is not as fast as one might hope.

llvm-svn: 126921


# c9601988 03-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Change the SplitEditor interface to a single instance can be shared for multiple splits.

llvm-svn: 126912


# 5ea0712e 03-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Only run the updateSSA loop when we have actually seen multiple values.

When only a single value has been seen, new PHIDefs are never needed.

llvm-svn: 126911


# 815196ca 02-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Turn the Edit member into a pointer so it can change dynamically.

No functional change.

llvm-svn: 126898


# 503b143a 02-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Transfer simply defined values directly without recomputing liveness and SSA.

Values that map to a single new value in a new interval after splitting don't
need new PHIDefs, and if the parent value

Transfer simply defined values directly without recomputing liveness and SSA.

Values that map to a single new value in a new interval after splitting don't
need new PHIDefs, and if the parent value was never rematerialized the live
range will be the same.

llvm-svn: 126894

show more ...


# 3648263a 02-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Extract a method. No functional change.

llvm-svn: 126893


# 48af8923 02-Mar-2011 Jakob Stoklund Olesen <[email protected]>

Move extendRange() into SplitEditor and delete the LiveRangeMap class.

Extract the updateSSA() method from the too long extendRange().

LiveOutCache can be shared among all the new intervals since t

Move extendRange() into SplitEditor and delete the LiveRangeMap class.

Extract the updateSSA() method from the too long extendRange().

LiveOutCache can be shared among all the new intervals since there is at most
one of the new ranges live out from each basic block.

llvm-svn: 126818

show more ...


12345678910>>...12