| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
they do not also require them. This allows us to reduce inter-pass linkage
dependencies.
llvm-svn: 116854
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Patch by Alexander Herz!
llvm-svn: 116733
|
| |
|
|
| |
llvm-svn: 116390
|
| |
|
|
| |
llvm-svn: 116387
|
| |
|
|
|
|
|
|
|
| |
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve. I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334
|
| |
|
|
| |
llvm-svn: 115996
|
| |
|
|
|
|
|
| |
initialization functions that initialize the set of passes implemented in
that library. Add C bindings for these functions as well.
llvm-svn: 115927
|
| |
|
|
|
|
|
| |
a header declaring them all. This is also where we will declare per-library pass-set
initializer functions down the road.
llvm-svn: 115900
|
| |
|
|
| |
llvm-svn: 114999
|
| |
|
|
| |
llvm-svn: 114750
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r113632
Conflicts:
cmake/modules/AddLLVM.cmake
llvm-svn: 113819
|
| |
|
|
| |
llvm-svn: 113766
|
| |
|
|
| |
llvm-svn: 113647
|
| |
|
|
| |
llvm-svn: 113632
|
| |
|
|
|
|
|
| |
into an inner loop, as the new loop iteration may differ substantially.
This fixes PR8078.
llvm-svn: 113057
|
| |
|
|
|
|
|
|
|
| |
I'm sure it is harmless. Original commit message:
If PrototypeValue is erased in the middle of using the SSAUpdator
then the SSAUpdator may access freed memory. Instead, simply pass
in the type and name explicitly, which is all that was used anyway.
llvm-svn: 112810
|
| |
|
|
|
|
| |
self host errors on clang-x86-64.
llvm-svn: 112719
|
| |
|
|
|
|
|
| |
then the SSAUpdator may access freed memory. Instead, simply pass
in the type and name explicitly, which is all that was used anyway.
llvm-svn: 112699
|
| |
|
|
| |
llvm-svn: 112409
|
| |
|
|
|
|
|
| |
I'm aware of, aren't maintained, and LVI will be replacing their value.
nlewycky approved this on irc.
llvm-svn: 112355
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix: add a flag to MapValue and friends which indicates whether
any module-level mappings are being made. In the common case of
inlining, no module-level mappings are needed, so MapValue doesn't
need to examine non-function-local metadata, which can be very
expensive in the case of a large module with really deep metadata
(e.g. a large C++ program compiled with -g).
This flag is a little awkward; perhaps eventually it can be moved
into the ClonedCodeInfo class.
llvm-svn: 112190
|
| |
|
|
|
|
|
| |
except ...", it is causing *massive* performance regressions when building Clang
with itself (-O3 -g).
llvm-svn: 112158
|
| |
|
|
|
|
| |
individual ...", which depends on r111922, which I am reverting.
llvm-svn: 112157
|
| |
|
|
|
|
| |
instructions, not when remapping modules.
llvm-svn: 112091
|
| |
|
|
|
|
|
|
| |
which does the same thing. This eliminates redundant code and
handles MDNodes better. MDNode linking still doesn't fully
work yet though.
llvm-svn: 111941
|
| |
|
|
|
|
|
|
| |
that it avoids a lot of unnecessary cloning by avoiding remapping
MDNode cycles when none of the nodes in the cycle actually need to
be remapped. Also it uses the new temporary MDNode mechanism.
llvm-svn: 111922
|
| |
|
|
|
|
| |
passes over to the new registration API.
llvm-svn: 111815
|
| |
|
|
| |
llvm-svn: 111348
|
| |
|
|
| |
llvm-svn: 111344
|
| |
|
|
|
|
| |
what it does manually.
llvm-svn: 111248
|
| |
|
|
|
|
| |
actually use ScalarEvolution.
llvm-svn: 111124
|
| |
|
|
|
|
| |
indirectbr destination lists.
llvm-svn: 111122
|
| |
|
|
| |
llvm-svn: 111061
|
| |
|
|
|
|
|
|
|
|
|
| |
- Eliminate redundant successors.
- Convert an indirectbr with one successor into a direct branch.
Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.
llvm-svn: 111060
|
| |
|
|
|
|
| |
instead, as an example of what this looks like.
llvm-svn: 110478
|
| |
|
|
| |
llvm-svn: 110460
|
| |
|
|
| |
llvm-svn: 110410
|
| |
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
| |
|
|
| |
llvm-svn: 109589
|
| |
|
|
| |
llvm-svn: 109506
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier
pass in StandardPasses.h to ensure that it gets scheduled at the right
time.
Declare that loop unrolling preserves ScalarEvolution, and shuffle some
getAnalysisUsages.
This eliminates one LoopSimplify and one LCCSA run in the standard
compile opts sequence.
llvm-svn: 109413
|
| |
|
|
| |
llvm-svn: 109412
|
| |
|
|
|
|
| |
build of llvm-gcc.
llvm-svn: 109355
|
| |
|
|
|
|
|
| |
it needs to be mapped to refer to the function in the new module, not the old
one. Fixes PR7700.
llvm-svn: 109353
|
| |
|
|
| |
llvm-svn: 109132
|
| |
|
|
| |
llvm-svn: 109122
|
| |
|
|
|
|
| |
A non function local MDNode can have an operand which is cloned by MapValue().
llvm-svn: 109117
|
| |
|
|
| |
llvm-svn: 109103
|
| |
|
|
| |
llvm-svn: 109098
|