History log of /llvm-project/llvm/lib/CodeGen/LiveVariables.cpp (Results 51 – 75 of 252)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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


1234567891011