History log of /llvm-project-15.0.7/llvm/lib/CodeGen/CodeGen.cpp (Results 151 – 160 of 160)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 52f24d7a 06-Dec-2011 Lang Hames <[email protected]>

Kill off the LoopSplitter. It's not being used or maintained.

llvm-svn: 145897


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4
# 4784df71 13-Nov-2011 NAKAMURA Takumi <[email protected]>

Prune more RALinScan. RALinScan was also here!

llvm-svn: 144487


Revision tags: llvmorg-3.0.0-rc3
# ae4e800c 02-Nov-2011 Chandler Carruth <[email protected]>

Begin collecting some of the statistics for block placement discussed on
the mailing list. Suggestions for other statistics to collect would be
awesome. =]

Currently these are implemented as a separ

Begin collecting some of the statistics for block placement discussed on
the mailing list. Suggestions for other statistics to collect would be
awesome. =]

Currently these are implemented as a separate pass guarded by a separate
flag. I'm not thrilled by that, but I wanted to be able to collect the
statistics for the old code placement as well as the new in order to
have a point of comparison. I'm planning on folding them into the single
pass if / when there is only one pass of interest.

llvm-svn: 143537

show more ...


Revision tags: llvmorg-3.0.0-rc2
# 10281425 21-Oct-2011 Chandler Carruth <[email protected]>

Implement a block placement pass based on the branch probability and
block frequency analyses. This differs substantially from the existing
block-placement pass in LLVM:

1) It operates on the Machin

Implement a block placement pass based on the branch probability and
block frequency analyses. This differs substantially from the existing
block-placement pass in LLVM:

1) It operates on the Machine-IR in the CodeGen layer. This exposes much
more (and more precise) information and opportunities. Also, the
results are more stable due to fewer transforms ocurring after the
pass runs.
2) It uses the generalized probability and frequency analyses. These can
model static heuristics, code annotation derived heuristics as well
as eventual profile loading. By basing the optimization on the
analysis interface it can work from any (or a combination) of these
inputs.
3) It uses a more aggressive algorithm, both building chains from tho
bottom up to maximize benefit, and using an SCC-based walk to layout
chains of blocks in a profitable ordering without O(N^2) iterations
which the old pass involves.

The pass is currently gated behind a flag, and not enabled by default
because it still needs to grow some important features. Most notably, it
needs to support loop aligning and careful layout of loop structures
much as done by hand currently in CodePlacementOpt. Once it supports
these, and has sufficient testing and quality tuning, it should replace
both of these passes.

Thanks to Nick Lewycky and Richard Smith for help authoring & debugging
this, and to Jakob, Andy, Eric, Jim, and probably a few others I'm
forgetting for reviewing and answering all my questions. Writing
a backend pass is *sooo* much better now than it used to be. =D

llvm-svn: 142641

show more ...


Revision tags: llvmorg-3.0.0-rc1
# 875ebd5f 25-Jul-2011 Jakub Staszak <[email protected]>

Rename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency to
MachineBlockFrequencyInfo.

llvm-svn: 135937


# b7d00313 27-Jun-2011 Evan Cheng <[email protected]>

Remove the experimental (and unused) pre-ra splitting pass. Greedy regalloc can split live ranges.

llvm-svn: 133962


# 676c405a 26-Jun-2011 Rafael Espindola <[email protected]>

There is only one register coalescer. Merge it into the base class and
remove the analysis group.

llvm-svn: 133899


Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1
# d4900a64 30-Nov-2010 Jakob Stoklund Olesen <[email protected]>

Stub out a new LiveDebugVariables pass.

This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG

Stub out a new LiveDebugVariables pass.

This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG_VALUE instructions.

When the register allocator is moving values between registers and the stack, it
is very hard to keep track of DBG_VALUE instructions. We usually get it wrong.
This analysis maintains a data structure that makes it easy to update DBG_VALUE
instructions.

llvm-svn: 120385

show more ...


# 6c18d1aa 19-Oct-2010 Owen Anderson <[email protected]>

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

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

show more ...


# 80fc0762 07-Oct-2010 Owen Anderson <[email protected]>

Add initialization routines for CodeGen.

llvm-svn: 115949


1234567