|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| | address of the static
ID member as the sole unique type identifier.  Clean up APIs related to this change.
llvm-svn: 110396 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 100011 | 
| | 
| 
| 
| 
| 
| | timers by pointer instead of by-value.
llvm-svn: 99871 | 
| | 
| 
| 
| | llvm-svn: 99870 | 
| | 
| 
| 
| | llvm-svn: 99862 | 
| | 
| 
| 
| | llvm-svn: 94156 | 
| | 
| 
| 
| | llvm-svn: 82994 | 
| | 
| 
| 
| | llvm-svn: 82993 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | the PassManager code into a regular verifyAnalysis method.
Also, reorganize loop verification. Make the LoopPass infrastructure
call verifyLoop as needed instead of having LoopInfo::verifyAnalysis
check every loop in the function after each looop pass. Add a new
command-line argument, -verify-loop-info, to enable the expensive
full checking.
llvm-svn: 82952 | 
| | 
| 
| 
| | llvm-svn: 82951 | 
| | 
| 
| 
| 
| 
| 
| 
| | code that stops the timer doesn't have to search to find the timer
object before it stops the timer. This avoids a lock acquisition
and a few other things done with the timer running.
llvm-svn: 82949 | 
| | 
| 
| 
| | llvm-svn: 82947 | 
| | 
| 
| 
| 
| 
| | a separate function.
llvm-svn: 82946 | 
| | 
| 
| 
| 
| 
| 
| 
| | LoopPasses for that loop. This avoids trouble with the PassManager
trying to call verifyAnalysis on them, and frees up some memory
sooner rather than later.
llvm-svn: 82945 | 
| | 
| 
| 
| | llvm-svn: 82908 | 
| | 
| 
| 
| | llvm-svn: 80919 | 
| | 
| 
| 
| | llvm-svn: 79836 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | on-the-fly passes as well.
Also don't call finalizers for LoopPass if initialization was not called.
Add a unittest that tests that these methods are called, in the proper
order, and the correct number of times.
llvm-svn: 74438 | 
| | 
| 
| 
| 
| 
| | analysis values, related to the instructions in the basic block.
llvm-svn: 67719 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | get nice and happy stack traces when we crash in an optimizer or codegen.  For
example, an abort put in UnswitchLoops now looks like this:
Stack dump:
0.	Program arguments: clang pr3399.c -S -O3 
1.	<eof> parser at end of file
2.	per-module optimization passes
3.	Running pass 'CallGraph Pass Manager' on module 'pr3399.c'.
4.	Running pass 'Loop Pass Manager' on function '@foo'
5.	Running pass 'Unswitch loops' on basic block '%for.inc'
Abort
llvm-svn: 66260 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | modified in a way that may effect the trip count calculation. Change
IndVars to use this method when it rewrites pointer or floating-point
induction variables instead of using a doInitialization method to
sneak these changes in before ScalarEvolution has a chance to see
the loop. This eliminates the need for LoopPass to depend on
ScalarEvolution.
llvm-svn: 64810 | 
| | 
| 
| 
| | llvm-svn: 64796 | 
| | 
| 
| 
| | llvm-svn: 55779 | 
| | 
| 
| 
| 
| 
| | up the passmgr by avoiding useless work.
llvm-svn: 54528 | 
| | 
| 
| 
| | llvm-svn: 53489 | 
| | 
| 
| 
| | llvm-svn: 53088 | 
| | 
| 
| 
| 
| 
| | Thanks for the feedback!
llvm-svn: 52978 | 
| | 
| 
| 
| | llvm-svn: 52967 | 
| | 
| 
| 
| | llvm-svn: 45418 | 
| | 
| 
| 
| 
| 
| | of comparing begin() and end().
llvm-svn: 42585 | 
| | 
| 
| 
| | llvm-svn: 42118 | 
| | 
| 
| 
| 
| 
| | - Move SCEVExpander::expand() out-of-line workarounding possible toolchain bug
llvm-svn: 41197 | 
| | 
| 
| 
| 
| 
| | Right now, this interface provides hooks for only to operations, 1) clone basic block 2) delete value.
llvm-svn: 40625 | 
| | 
| 
| 
| | llvm-svn: 40062 | 
| | 
| 
| 
| 
| 
| | with hopefully correct code that pleases g++-4.2.
llvm-svn: 40051 | 
| | 
| 
| 
| | llvm-svn: 37822 | 
| | 
| 
| 
| | llvm-svn: 36662 | 
| | 
| 
| 
| 
| 
| 
| | Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 | 
| | 
| 
| 
| | llvm-svn: 36632 | 
| | 
| 
| 
| | llvm-svn: 35003 | 
| | 
| 
| 
| | llvm-svn: 34992 | 
| | 
| 
| 
| | llvm-svn: 34982 | 
| | 
| 
| 
| 
| 
| | This ensures that require analysis info is available.
llvm-svn: 34980 | 
| | 
| 
| 
| | llvm-svn: 34979 | 
| | 
| 
| 
| 
| 
| | LoopUnswitch pass.
llvm-svn: 34977 |