History log of /llvm-project/llvm/lib/CodeGen/MachineCSE.cpp (Results 151 – 175 of 183)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# a57b97e7 21-Jul-2010 Owen Anderson <resistor@mac.com>

Fix batch of converting RegisterPass<> to INTIALIZE_PASS().

llvm-svn: 109045


# 37c42a3d 16-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.

TII::isMoveInstr is going tobe completely removed.

llvm-svn: 108507


# 00264624 08-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Convert EXTRACT_SUBREG to COPY when emitting machine instrs.

EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.

Add isCopy() checks in many places using isMoveInstr() and

Convert EXTRACT_SUBREG to COPY when emitting machine instrs.

EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.

Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg().
The isMoveInstr hook will be removed later.

llvm-svn: 107879

show more ...


# 4c82a9e7 03-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Detect and handle COPY in many places.

This code is transitional, it will soon be possible to eliminate
isExtractSubreg, isInsertSubreg, and isMoveInstr in most places.

llvm-svn: 107547


# a03e6f85 04-Jun-2010 Evan Cheng <evan.cheng@apple.com>

Re-apply 105308 with fix.

llvm-svn: 105502


# 30093b5d 03-Jun-2010 Bob Wilson <bob.wilson@apple.com>

Revert 105308.

llvm-svn: 105399


# a2da2273 02-Jun-2010 Evan Cheng <evan.cheng@apple.com>

Enable machine cse of instructions which define physical registers.

llvm-svn: 105308


# 53ff992d 21-May-2010 Eric Christopher <echristo@apple.com>

Make this LookAheadLimit, not the uninitialized LookAheadLeft.

Evan please verify!

llvm-svn: 104408


# 2c8bdead 21-May-2010 Evan Cheng <evan.cheng@apple.com>

Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs.

llvm-svn: 104385


# 7767d274 13-May-2010 Dan Gohman <gohman@apple.com>

Add a utility function for conservatively clearing kill flags, and make
use of it in MachineCSE.

llvm-svn: 103726


Revision tags: llvmorg-2.7.0
# 4b2ef56a 21-Apr-2010 Evan Cheng <evan.cheng@apple.com>

Rewrite machine cse to avoid recursion.

llvm-svn: 101964


# 4019d571 20-Apr-2010 Evan Cheng <evan.cheng@apple.com>

Typo.

llvm-svn: 101914


# 604bc162 02-Apr-2010 Evan Cheng <evan.cheng@apple.com>

After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted.
rdar://7819990

llvm-svn

After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted.
rdar://7819990

llvm-svn: 100170

show more ...


# cf7be39e 24-Mar-2010 Evan Cheng <evan.cheng@apple.com>

dbg_value may end a block.

llvm-svn: 99378


# c7d721aa 23-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Code clean up.

llvm-svn: 99319


# 197bd3ee 11-Mar-2010 Dale Johannesen <dalej@apple.com>

Fix debug_value handling.

llvm-svn: 98224


# 4c5f7a7f 10-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Add a couple more heuristics to neuter machine cse some more.

1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a dir

Add a couple more heuristics to neuter machine cse some more.

1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled.
2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure.

Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again.

Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64.

llvm-svn: 98121

show more ...


# 51063739 09-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Allow more cross-rc coalescing.

llvm-svn: 98048


# 7c699f92 09-Mar-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Don't do illegal cross-class coalescing.

llvm-svn: 98044


# 19e44b45 09-Mar-2010 Evan Cheng <evan.cheng@apple.com>

- Make the machine cse dumb coalescer (as opposed to the more awesome simple
coalescer) handle sub-register classes.
- Add heuristics to avoid non-profitable cse. Given the current lack of live
r

- Make the machine cse dumb coalescer (as opposed to the more awesome simple
coalescer) handle sub-register classes.
- Add heuristics to avoid non-profitable cse. Given the current lack of live
range splitting, avoid cse when an expression has PHI use and the would be
new use is in a BB where the expression wasn't already being used.

llvm-svn: 98043

show more ...


# c9e86212 08-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason.

llvm-svn: 98009


# 6ec41ee3 08-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer.

llvm-svn: 98007


# 0f5f5478 06-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Don't update physical register def.

llvm-svn: 97861


# 1abd1a9f 04-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Avoid cse load instructions unless they are known to be invariant loads.

llvm-svn: 97747


# 36f8aabb 04-Mar-2010 Evan Cheng <evan.cheng@apple.com>

Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86.

llvm-svn: 97706


12345678