Revision tags: llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
af37ad19 |
| 11-Jun-2015 |
Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> |
[LiveVariables] Improve isLiveOut runtime performances. NFC.
On large goto table based interpreters, where phi nodes can have (very) large fan-ins, isLiveOut exhibited poor performances: about 40% o
[LiveVariables] Improve isLiveOut runtime performances. NFC.
On large goto table based interpreters, where phi nodes can have (very) large fan-ins, isLiveOut exhibited poor performances: about 40% of the full codegen time was spent in PHIElim, sorting MachineBasicBlock addresses.
This patch improve the performances for such cases, and does not show compile time regressions on the LNT, at bootstrap (llvm+clang+lldb) or any other benchmarks we have in-house.
llvm-svn: 239510
show more ...
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
799003bf |
| 23-Mar-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used.
llvm-svn: 232998
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
307c2cb2 |
| 14-Oct-2014 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary TargetMachine.h includes.
llvm-svn: 219672
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4 |
|
#
17f05a3f |
| 26-Aug-2014 |
Dylan Noblesmith <nobled@dreamwidth.org> |
CodeGen/LiveVariables: use vector::assign()
Address review comments.
llvm-svn: 216426
|
#
6e69927d |
| 25-Aug-2014 |
Dylan Noblesmith <nobled@dreamwidth.org> |
CodeGen/LiveVariables: hoist out code in nested loops
This makes runOnMachineFunction vastly more readable.
llvm-svn: 216368
|
#
46a922c1 |
| 25-Aug-2014 |
Dylan Noblesmith <nobled@dreamwidth.org> |
CodeGen/LiveVariables: switch to std::vector
No functionality change.
llvm-svn: 216367
|
#
4627679c |
| 24-Aug-2014 |
Craig Topper <craig.topper@gmail.com> |
Use range based for loops to avoid needing to re-mention SmallPtrSet size.
llvm-svn: 216351
|
Revision tags: llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2 |
|
#
fc6de428 |
| 05-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Have MachineFunction cache a pointer to the subtarget to make lookups shorter/easier and have the DAG use that to do the same lookup. This can be used in the future for TargetMachine based caching lo
Have MachineFunction cache a pointer to the subtarget to make lookups shorter/easier and have the DAG use that to do the same lookup. This can be used in the future for TargetMachine based caching lookups from the MachineFunction easily.
Update the MIPS subtarget switching machinery to update this pointer at the same time it runs.
llvm-svn: 214838
show more ...
|
#
d913448b |
| 04-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Remove the TargetMachine forwards for TargetSubtargetInfo based information and update all callers. No functional change.
llvm-svn: 214781
|
Revision tags: llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
f74bde67 |
| 30-Apr-2014 |
Alexey Samsonov <samsonov@google.com> |
Convert more loops to range-based equivalents
llvm-svn: 207714
|
#
41b977df |
| 30-Apr-2014 |
Alexey Samsonov <samsonov@google.com> |
Convert several loops over MachineFunction basic blocks to range-based loops
llvm-svn: 207683
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
c0196b1b |
| 14-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206142
|
Revision tags: llvmorg-3.4.1-rc1, llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
2cd5ff80 |
| 11-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.
llvm-svn: 186098
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
e1c1d363 |
| 03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.
llvm-svn: 185512
|
Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3 |
|
#
c7505ef8 |
| 22-May-2013 |
Chad Rosier <mcrosier@apple.com> |
Simplify logic now that r182490 is in place. No functional change intended.
llvm-svn: 182526
|
Revision tags: llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
c338679c |
| 05-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove special-casing of return blocks for liveness.
Now that return value registers are return instruction uses, there is no need for special treatment of return blocks.
llvm-svn: 174416
|
Revision tags: 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, llvmorg-3.2.0-rc1 |
|
#
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
|
#
19f49ac6 |
| 11-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"
No functional change. Update r163339.
llvm-svn: 163653
|
#
851c941b |
| 09-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LiveVariables: Compute a set of defs and kills to speed up updating LV during critical edge splitting.
Previously we checked if the register is def'd in a block via the def/use list a nd walked the
LiveVariables: Compute a set of defs and kills to speed up updating LV during critical edge splitting.
Previously we checked if the register is def'd in a block via the def/use list a nd walked the list of kills to check if the register is killed in a block. Both of these checks can be made much cheaper by walking the block first and recording all defs and kills.
This reduces the compile time of the test case from PR13651 from 40s to 15s at -O2. The compile time is still dominated by LV updating but now the main culprit is SparseBitVector's slowness.
llvm-svn: 163478
show more ...
|
#
742534c4 |
| 06-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "ifndef NDEBUG"
No functional change.
llvm-svn: 163339
|
#
502e4c6a |
| 23-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach LiveVariables to handle <undef> operands.
It's simple: Don't treat <undef> operands as uses, and don't assume a virtual register has a defining instruction unless a real use has been seen.
ll
Teach LiveVariables to handle <undef> operands.
It's simple: Don't treat <undef> operands as uses, and don't assume a virtual register has a defining instruction unless a real use has been seen.
llvm-svn: 159061
show more ...
|
#
54038d79 |
| 01-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch all register list clients to the new MC*Iterator interface.
No functional change intended.
Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in
Switch all register list clients to the new MC*Iterator interface.
No functional change intended.
Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation.
This makes it possible to do so without changing all clients (again).
llvm-svn: 157854
show more ...
|
Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
652f2127 |
| 01-Apr-2012 |
Lang Hames <lhames@gmail.com> |
Fix typo.
llvm-svn: 153846
|
#
7d544f91 |
| 09-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert on SSA errors in LiveVariables.
All uses of a virtual register must be dominated by its def.
llvm-svn: 152449
|