- Jan 10, 2011
-
-
Chris Lattner authored
rolled std::find. llvm-svn: 123164
-
Jakob Stoklund Olesen authored
These functions not longer assert when passed 0, but simply return false instead. No functional change intended. llvm-svn: 123155
-
- Jan 08, 2011
-
-
Evan Cheng authored
Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. llvm-svn: 123044
-
- Jan 03, 2011
-
-
Cameron Zwarich authored
a 28% speedup of MachineCSE time on 403.gcc. llvm-svn: 122735
-
- Dec 15, 2010
-
-
Evan Cheng authored
llvm-svn: 121903
-
- Oct 30, 2010
-
-
- Oct 19, 2010
-
-
Owen Anderson authored
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
-
- Oct 12, 2010
-
-
Owen Anderson authored
perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Oct 07, 2010
-
-
Jakob Stoklund Olesen authored
This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA requiring a GR32_NOSP argument. llvm-svn: 115875
-
- Sep 17, 2010
-
-
Evan Cheng authored
llvm-svn: 114222
-
Evan Cheng authored
llvm-svn: 114220
-
- Aug 17, 2010
-
-
Evan Cheng authored
llvm-svn: 111281
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jul 16, 2010
-
-
Jakob Stoklund Olesen authored
TII::isMoveInstr is going tobe completely removed. llvm-svn: 108507
-
- Jul 08, 2010
-
-
Jakob Stoklund Olesen authored
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
-
- Jul 03, 2010
-
-
Jakob Stoklund Olesen authored
This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places. llvm-svn: 107547
-
- Jun 05, 2010
-
-
Evan Cheng authored
llvm-svn: 105502
-
- Jun 03, 2010
-
-
Bob Wilson authored
llvm-svn: 105399
-
- Jun 02, 2010
-
-
Evan Cheng authored
llvm-svn: 105308
-
- May 22, 2010
-
-
Eric Christopher authored
Evan please verify! llvm-svn: 104408
-
- May 21, 2010
-
-
Evan Cheng authored
Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs. llvm-svn: 104385
-
- May 13, 2010
-
-
Dan Gohman authored
use of it in MachineCSE. llvm-svn: 103726
-
- Apr 21, 2010
-
-
Evan Cheng authored
llvm-svn: 101964
-
- Apr 20, 2010
-
-
Evan Cheng authored
llvm-svn: 101914
-
- Apr 02, 2010
-
-
Evan Cheng authored
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
-
- Mar 24, 2010
-
-
Evan Cheng authored
llvm-svn: 99378
-
- Mar 23, 2010
-
-
Evan Cheng authored
llvm-svn: 99319
-
- Mar 11, 2010
-
-
Dale Johannesen authored
llvm-svn: 98224
-
- Mar 10, 2010
-
-
Evan Cheng authored
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
-
- Mar 09, 2010
-
-
Evan Cheng authored
llvm-svn: 98048
-
Jakob Stoklund Olesen authored
llvm-svn: 98044
-
Evan Cheng authored
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
-
Evan Cheng authored
Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason. llvm-svn: 98009
-
Evan Cheng authored
llvm-svn: 98007
-
- Mar 06, 2010
-
-
Evan Cheng authored
llvm-svn: 97861
-
- Mar 04, 2010
-
-
Evan Cheng authored
llvm-svn: 97747
-