5f46eb157e58df285e1a0a7ce6ff1c9ed972bf65 |
|
27-Mar-2012 |
Lang Hames <lhames@gmail.com> |
Use a SmallVector and linear lookup instead of a DenseSet - SourceMap values will always be tiny sets, so DenseSet is overkill (SmallSet won't work as we need iteration support). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
d9eb1d77979f10d0237af22d87789803162044fa |
|
27-Mar-2012 |
Lang Hames <lhames@gmail.com> |
During MachineCopyPropagation a register may be the source operand of multiple copies being considered for removal. Make sure to track all of the copies, rather than just the most recent encountered, by holding a DenseSet instead of an unsigned in SrcMap. No test case - couldn't reduce something with a sane size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
9ebfbf8b9fd5f982e0db9293808bd32168615ba9 |
|
05-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more GenRegisterInfo tables from unsigned to uint16_t to reduce static data size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
e4fd907e72a599eddfa7a81eac4366b5b82523e3 |
|
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store register overlaps to reduce static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
b266cd0e9824db48804c785b2c48b43be0c0f7dd |
|
27-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR12090: clear def maps of aliases when visiting a copy. e.g. %S5<def> = COPY %S0<kill> First clear def map of Q1, etc. No small test case available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
01b623c8c2d1bd015a8bb20eafee3322575eff8f |
|
21-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix machine-cp by having it to check sub-register indicies. e.g. ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
f56ce5312448e5876ee1822facab48385ea5c0c0 |
|
09-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Erase dead copies that are clobbered by a call. This does make a difference, at least when using RABasic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
a8fc171b3f703ad8bda50a22e9227eee0822eeec |
|
08-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in MachineCopyPropagation. For simplicity, treat calls with register masks as basic block boundaries. This means we can't copy propagate callee-saved registers across calls, but I don't think that is a big deal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
1dd8c8560d45d36a8e507cd014352f1d313f9f9e |
|
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. 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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
1df91b0e54bc62f8fc7a06a4f75220e40aa2dfe0 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
1a96c914315b0286d84c507d696484e2c95875a4 |
|
26-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags before propagating a copy. The live range of the source register may be extended when a redundant copy is eliminated. Make sure any kill flags between the two copies are cleared. This fixes PR11765. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
e811d0dd30e8949df5d72bedfaa46dc579dad97e |
|
08-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid eraseing copies from a reserved register unless the definition can be safely proven not to have been clobbered. No small test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|
977679d6034791fd48a344e5b990503ba50fc242 |
|
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Added a late machine instruction copy propagation pass. This catches opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineCopyPropagation.cpp
|