| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The PassManager did not implement the transitivity of requiredTransitive. This
was unnoticed since 2006.
llvm-svn: 123942
|
|
|
|
| |
llvm-svn: 120298
|
|
|
|
| |
llvm-svn: 118790
|
|
|
|
|
|
|
| |
A RegionPass is executed like a LoopPass but on the regions detected by the
RegionInfo pass instead of the loops detected by the LoopInfo pass.
llvm-svn: 116905
|
|
|
|
| |
llvm-svn: 116279
|
|
|
|
| |
llvm-svn: 116278
|
|
|
|
| |
llvm-svn: 116277
|
|
|
|
| |
llvm-svn: 116276
|
|
|
|
|
|
| |
stop searching when it has found a match.
llvm-svn: 116262
|
|
|
|
| |
llvm-svn: 111500
|
|
|
|
| |
llvm-svn: 111200
|
|
|
|
|
|
|
|
|
|
| |
a Pass abstraction, since that's the level it's actually used at.
Rename Pass' dumpPassStructure to dumpPass.
This eliminates an awkward use of getAsPass() to convert a PMDataManager*
into a Pass* just to permit a dumpPassStructure call.
llvm-svn: 111199
|
|
|
|
| |
llvm-svn: 111192
|
|
|
|
|
|
|
| |
PMTopLevelManager's constructor take a PMDataManager *, which already
provides the needed abstraction support.
llvm-svn: 111189
|
|
|
|
| |
llvm-svn: 110983
|
|
|
|
| |
llvm-svn: 110982
|
|
|
|
| |
llvm-svn: 110981
|
|
|
|
| |
llvm-svn: 110499
|
|
|
|
| |
llvm-svn: 110496
|
|
|
|
|
|
| |
out of PassManager.cpp and into Core.cpp with the rest of the C binding code.
llvm-svn: 110494
|
|
|
|
| |
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
|
|
|
|
|
|
| |
different direction with this.
llvm-svn: 108856
|
|
|
|
|
|
|
|
| |
working again. I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.
llvm-svn: 108818
|
|
|
|
| |
llvm-svn: 108813
|
|
|
|
|
|
|
| |
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.
llvm-svn: 108805
|
|
|
|
|
|
| |
(StaticPassInfo) and a constructor-ful subclass (PassInfo).
llvm-svn: 108794
|
|
|
|
|
|
|
|
|
| |
manually implemented
linked list. This is a little slower and involves more malloc'ing, but these lists are
typically short, and it allows PassInfo to be entirely constant initializable.
llvm-svn: 108755
|
|
|
|
| |
llvm-svn: 106444
|
|
|
|
|
|
| |
It works in simple cases, but it isn't a general solution.
llvm-svn: 103499
|
|
|
|
| |
llvm-svn: 103493
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes a patch by Roman Divacky to fix the initial crash.
Move the actual addition of passes from *PassManager::add to
*PassManager::addImpl. That way, when adding printer passes we won't
recurse infinitely.
Finally, check to make sure that we are actually adding a FunctionPass
to a FunctionPassManager before doing a print before or after it.
Immutable passes are strange in this way because they aren't
FunctionPasses yet they can be and are added to the FunctionPassManager.
llvm-svn: 103425
|
|
|
|
|
|
| |
readability.
llvm-svn: 100756
|
|
|
|
| |
llvm-svn: 100709
|
|
|
|
| |
llvm-svn: 100702
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
source addition. Apparently the buildbots were wrong about failures.
---
Add some switches helpful for debugging:
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100249
|
|
|
|
|
|
| |
are run during codegen.
llvm-svn: 100207
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<string> include. For some reason the buildbot choked on this while my
builds did not. It's probably due to a difference in system headers.
---
Add some switches helpful for debugging:
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100204
|
|
|
|
| |
llvm-svn: 100146
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100143
|
|
|
|
|
|
| |
timers by pointer instead of by-value.
llvm-svn: 99871
|
|
|
|
| |
llvm-svn: 99870
|
|
|
|
| |
llvm-svn: 99862
|
|
|
|
| |
llvm-svn: 97608
|
|
|
|
| |
llvm-svn: 97446
|
|
|
|
|
|
| |
fixes a crash using FPM on a Function that isn't owned by a Module.
llvm-svn: 96273
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
|
|
|
| |
llvm-svn: 94160
|
|
|
|
| |
llvm-svn: 94156
|