| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 186790
|
|
|
|
|
|
| |
to iterate over.
llvm-svn: 186788
|
|
|
|
|
|
|
|
|
|
|
|
| |
helper function. This leaves both trivial cases handled entirely in
helper functions and merely manages the list of allocas to process in
the run method.
The next step will be to handle all of the trivial promotion work prior
to even creating the core class and the subsequent simplifications that
enables.
llvm-svn: 186784
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a single block into the helper routine. This takes advantage of the fact
that we can directly replace uses prior to any store with undef to
simplify matters and unconditionally promote allocas only used within
one block.
I've removed the special handling for the case of no stores existing.
This has no semantic effect but might slow things down. I'll fix that in
a later patch when I refactor this entire thing to be easier to manage
the different cases.
llvm-svn: 186783
|
|
|
|
| |
llvm-svn: 186782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handles the general cases.
The hope is to refactor this so that we don't end up building the entire
class for the trivial cases. I also want to lift a lot of the early
pre-processing in the initial segment of run() into a separate routine,
and really none of it needs to happen inside the primary promotion
class.
These routines in particular used none of the actual state in the
promotion class, so they don't really make sense as members.
llvm-svn: 186781
|
|
|
|
|
|
|
|
| |
This struct is nicely independent of everything else, and we already
needed a foward declaration here. It's simpler to just define it
immediately.
llvm-svn: 186780
|
|
|
|
| |
llvm-svn: 186779
|
|
|
|
|
|
| |
that ensued from that.
llvm-svn: 186777
|
|
|
|
|
|
| |
pattern and conform to the naming conventions.
llvm-svn: 186776
|
|
|
|
|
|
| |
subsequent changes don't introduce inconsistencies.
llvm-svn: 186775
|
|
|
|
|
|
| |
those baked into DenseMap now.
llvm-svn: 186773
|
|
|
|
|
|
| |
functionality changed.
llvm-svn: 186772
|
|
|
|
|
|
| |
specifying the vector size.
llvm-svn: 185606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.
There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.
The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.
I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).
I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.
llvm-svn: 171366
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 166456
|
|
|
|
| |
llvm-svn: 166454
|
|
|
|
|
|
|
|
|
| |
deterministic, replace it with a DenseMap<std::pair<unsigned, unsigned>,
PHINode*> (we already have a map from BasicBlock to unsigned).
<rdar://problem/12541389>
llvm-svn: 166435
|
|
|
|
|
|
|
| |
(a.k.a. MDNodes). The module doesn't belong in Analysis. Move it to the VMCore
instead.
llvm-svn: 159414
|
|
|
|
|
|
|
|
|
| |
include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h.
The reasoning is because the DebugInfo module is simply an interface to the
debug info MDNodes and has nothing to do with analysis.
llvm-svn: 159312
|
|
|
|
| |
llvm-svn: 152026
|
|
|
|
| |
llvm-svn: 150998
|
|
|
|
|
|
|
| |
InstructionSimplify.cpp. Other fixups as needed.
Part of rdar://10500969
llvm-svn: 145559
|
|
|
|
| |
llvm-svn: 137690
|
|
|
|
|
|
| |
passes as well.
llvm-svn: 133904
|
|
|
|
| |
llvm-svn: 133251
|
|
|
|
|
|
| |
promoting allocas to SSA variables. Fixes <rdar://problem/9479036>.
llvm-svn: 131953
|
|
|
|
| |
llvm-svn: 130068
|
|
|
|
| |
llvm-svn: 129932
|
|
|
|
|
|
| |
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
|
|
|
|
| |
llvm-svn: 127832
|
|
|
|
| |
llvm-svn: 126398
|
|
|
|
|
|
| |
on test-suite + SPEC2000 & SPEC2006.
llvm-svn: 124068
|
|
|
|
| |
llvm-svn: 123732
|
|
|
|
|
|
|
| |
function. This seems to be about a 1.5% speedup of -scalarrepl on test-suite
with SPEC2000 and SPEC2006.
llvm-svn: 123731
|
|
|
|
| |
llvm-svn: 123724
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
checks enabled:
1) Use '<' to compare integers in a comparison function rather than '<='.
2) Use the uniqued set DefBlocks rather than Info.DefiningBlocks to initialize
the priority queue.
The speedup of scalarrepl on test-suite + SPEC2000 + SPEC2006 is a bit less, at
just under 16% rather than 17%.
llvm-svn: 123662
|
|
|
|
| |
llvm-svn: 123618
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eliminating a potentially quadratic data structure, this also gives a 17%
speedup when running -scalarrepl on test-suite + SPEC2000 + SPEC2006. My initial
experiment gave a greater speedup around 25%, but I moved the dominator tree
level computation from dominator tree construction to PromoteMemToReg.
Since this approach to computing IDFs has a much lower overhead than the old
code using precomputed DFs, it is worth looking at using this new code for the
second scalarrepl pass as well.
llvm-svn: 123609
|
|
|
|
|
|
| |
so that Dominators.h is *just* domtree. Also prune #includes a bit.
llvm-svn: 122714
|
|
|
|
|
|
| |
is never used. Patch by Cameron Zwarich.
llvm-svn: 119963
|
|
|
|
|
|
| |
rather than calling hasConstantValue. No intended functionality change.
llvm-svn: 119352
|
|
|
|
| |
llvm-svn: 111344
|
|
|
|
| |
llvm-svn: 108961
|
|
|
|
| |
llvm-svn: 107966
|
|
|
|
|
|
| |
SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
|
|
|
|
|
|
| |
respective store instruction does not have any location info.
llvm-svn: 105490
|
|
|
|
| |
llvm-svn: 104914
|
|
|
|
| |
llvm-svn: 104913
|