#
cccd82f2 |
| 16-Dec-2013 |
Andrew Trick <atrick@apple.com> |
whitespace
llvm-svn: 197413
|
Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
b94011fd |
| 14-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.
llvm-svn: 186274
|
Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1, llvmorg-3.2.0, llvmorg-3.2.0-rc3 |
|
#
ed0881b2 |
| 03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented.
Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =]
llvm-svn: 169131
show more ...
|
Revision tags: llvmorg-3.2.0-rc2 |
|
#
f89406ac |
| 27-Nov-2012 |
Manman Ren <mren@apple.com> |
CSE: allow PerformTrivialCoalescing to check copies across basic block boundaries.
Given the following case: BB0 %vreg1<def> = SUBrr %vreg0, %vreg7 %vreg2<def> = COPY %vreg7 BB1 %vreg10<def> =
CSE: allow PerformTrivialCoalescing to check copies across basic block boundaries.
Given the following case: BB0 %vreg1<def> = SUBrr %vreg0, %vreg7 %vreg2<def> = COPY %vreg7 BB1 %vreg10<def> = SUBrr %vreg0, %vreg2 We should be able to CSE between SUBrr in BB0 and SUBrr in BB1.
rdar://12462006
llvm-svn: 168717
show more ...
|
#
f18753b8 |
| 26-Nov-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Don't use iterator after being erased.
llvm-svn: 168622
|
Revision tags: llvmorg-3.2.0-rc1 |
|
#
3946877f |
| 13-Nov-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Do not consider a machine instruction that uses and defines the same physical register as candidate for common subexpression elimination in MachineCSE.
This fixes a bug on PowerPC in MultiSource/App
Do not consider a machine instruction that uses and defines the same physical register as candidate for common subexpression elimination in MachineCSE.
This fixes a bug on PowerPC in MultiSource/Applications/oggenc/oggenc caused by MachineCSE invalidly merging two separate DYNALLOC insns.
llvm-svn: 167855
show more ...
|
#
244beb42 |
| 16-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused BitVectors from getAllocatableSet().
llvm-svn: 165999
|
#
c30a9af2 |
| 15-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch most getReservedRegs() clients to the MRI equivalent.
Using the cached bit vector in MRI avoids comstantly allocating and recomputing the reserved register bit vector.
llvm-svn: 165983
|
#
59c8b411 |
| 11-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
MachineCSE: Hoist isConstantPhysReg out of the loop, it checks for overlaps already.
llvm-svn: 161729
|
#
ef6494f2 |
| 11-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR13578: Teach MachineCSE that instructions that use a constant register can be CSE'd safely.
This is common e.g. when doing rip-relative addressing on x86_64.
llvm-svn: 161728
|
#
1be131ba |
| 08-Aug-2012 |
Manman Ren <mren@apple.com> |
X86: enable CSE between CMP and SUB
We perform the following: 1> Use SUB instead of CMP for i8,i16,i32 and i64 in ISel lowering. 2> Modify MachineCSE to correctly handle implicit defs. 3> Convert SU
X86: enable CSE between CMP and SUB
We perform the following: 1> Use SUB instead of CMP for i8,i16,i32 and i64 in ISel lowering. 2> Modify MachineCSE to correctly handle implicit defs. 3> Convert SUB back to CMP if possible at peephole.
Removed pattern matching of (a>b) ? (a-b):0 and like, since they are handled by peephole now.
rdar://11873276
llvm-svn: 161462
show more ...
|
#
cb36b8c2 |
| 07-Aug-2012 |
Manman Ren <mren@apple.com> |
MachineCSE: Update the heuristics for isProfitableToCSE.
If the result of a common subexpression is used at all uses of the candidate expression, CSE should not increase the live range of the common
MachineCSE: Update the heuristics for isProfitableToCSE.
If the result of a common subexpression is used at all uses of the candidate expression, CSE should not increase the live range of the common subexpression.
rdar://11393714 and rdar://11819721
llvm-svn: 161396
show more ...
|
#
d163405d |
| 19-Jul-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove tabs.
llvm-svn: 160475
|
#
765c6993 |
| 05-Jul-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Remove ParentMap. You can just ask the domnode for its parent. No functionality change.
Move the "Not profitable, avoid CSE!" debug message next to where we fail the check for profitability and use
Remove ParentMap. You can just ask the domnode for its parent. No functionality change.
Move the "Not profitable, avoid CSE!" debug message next to where we fail the check for profitability and use a different message for avoiding CSE due to being in different register classes.
llvm-svn: 159729
show more ...
|
#
92a00839 |
| 01-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch some getAliasSet clients to MCRegAliasIterator.
MCRegAliasIterator can optionally visit the register itself, allowing for simpler code.
llvm-svn: 157837
|
Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
1d326588 |
| 04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store register overlaps to reduce static data.
llvm-svn: 152001
|
#
4c5ad2b8 |
| 28-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in MachineCSE.
Don't attempt to extend physreg live ranges across calls.
<rdar://problem/10942095>
llvm-svn: 151610
|
#
5bade3dc |
| 17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786.
llvm-svn: 150769
|
#
55a2a961 |
| 16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Oop - r150653 + r150654 broke one of my test cases. Backing out for now...
llvm-svn: 150655
|
#
2055493b |
| 16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
MachineCSE shouldn't extend the live ranges of reserved or allocatable registers.
llvm-svn: 150653
|
#
1fa5bcbe |
| 08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Codegen pass definition cleanup. No functionality.
Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer.
Codegen pass definition cleanup. No functionality.
Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods.
While cleaning up declarations, cleaned up comments (sorry for large diff).
llvm-svn: 150100
show more ...
|
#
9e761997 |
| 08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace
llvm-svn: 150094
|
#
ae22c60f |
| 05-Feb-2012 |
Duncan Sands <baldrick@free.fr> |
Persuade GCC that there is nothing worth warning about here (there isn't).
llvm-svn: 149834
|
#
d9725a38 |
| 11-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid CSE of instructions which define physical registers across MBBs unless the physical registers are not allocatable.
llvm-svn: 147902
|
#
0be4144a |
| 10-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Allow machine-cse to look across MBB boundary when cse'ing instructions that define physical registers. It's currently very restrictive, only catching cases where the CE is in an immediate (and only)
Allow machine-cse to look across MBB boundary when cse'ing instructions that define physical registers. It's currently very restrictive, only catching cases where the CE is in an immediate (and only) predecessor. But it catches a surprising large number of cases.
rdar://10660865
llvm-svn: 147827
show more ...
|