1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Commit Graph

122 Commits

Author SHA1 Message Date
Owen Anderson
e15120e561 Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce #include clutter
and exposing internal details.

llvm-svn: 113252
2010-09-07 19:16:25 +00:00
Dan Gohman
1d48a4b1d7 Tidy some #includes and forward-declarations, and move the C binding code
out of PassManager.cpp and into Core.cpp with the rest of the C binding code.

llvm-svn: 110494
2010-08-07 00:43:20 +00:00
Rafael Espindola
2145c31de3 Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove
some default values that are not used.

llvm-svn: 110485
2010-08-06 23:03:52 +00:00
Owen Anderson
f2fea95f2f Reapply r110396, with fixes to appease the Linux buildbot gods.
llvm-svn: 110460
2010-08-06 18:33:48 +00:00
Owen Anderson
aadd8a89ca Revert r110396 to fix buildbots.
llvm-svn: 110410
2010-08-06 00:23:35 +00:00
Owen Anderson
b9762c07cb Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier.  Clean up APIs related to this change.

llvm-svn: 110396
2010-08-05 23:42:04 +00:00
Owen Anderson
b36d01c1b6 Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with RegisterAnalysisGroup<> for pass registration.
llvm-svn: 109058
2010-07-21 23:07:00 +00:00
Owen Anderson
e8e8b5a744 Add the INITIALIZE_PASS macro.
llvm-svn: 109034
2010-07-21 20:46:41 +00:00
Owen Anderson
6265d52037 Move the handling of PassRegistrationListener's to PassRegistry.
llvm-svn: 108966
2010-07-20 23:41:56 +00:00
Owen Anderson
e5f3371961 Pull out r108755. After offline discussion with Chris, we're going to go a different direction with this.
llvm-svn: 108856
2010-07-20 16:55:05 +00:00
Owen Anderson
5f218b8612 Speculatively revert r108813, in an attempt to get the self-host buildbots 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
2010-07-20 08:26:15 +00:00
Owen Anderson
cf625d0179 Reapply r108794, a fix for the failing test from last time.
llvm-svn: 108813
2010-07-20 06:52:42 +00:00
Daniel Dunbar
3280e3aebf Revert r108794, "Separate PassInfo into two classes: a constructor-free
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.

llvm-svn: 108805
2010-07-20 03:06:07 +00:00
Owen Anderson
3502f9a91b Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).
llvm-svn: 108794
2010-07-20 01:19:58 +00:00
Owen Anderson
522ef60c01 Change the implemented interfaces list on PassInfo from a std::vector to a 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
2010-07-19 21:44:48 +00:00
Dan Gohman
745765d0b8 Move several non-performance-critical member functinos out of line.
llvm-svn: 106444
2010-06-21 18:46:45 +00:00
Chris Lattner
86ab039320 add a helper method.
llvm-svn: 94012
2010-01-20 19:25:45 +00:00
Daniel Dunbar
65c6507ca8 Add required #includes for freestanding .h files.
llvm-svn: 84302
2009-10-17 03:28:07 +00:00
Dan Gohman
e5f1c4a5c2 Remove some unused fields.
llvm-svn: 80450
2009-08-29 23:34:14 +00:00
Gabor Greif
267542aaa5 remove a deprecated interface that was pretty useless
llvm-svn: 65842
2009-03-02 12:42:07 +00:00
Gabor Greif
f30dc30eea fix typo
llvm-svn: 65839
2009-03-02 12:10:56 +00:00
Dan Gohman
12c7695dcf Correct a comment.
llvm-svn: 52683
2008-06-24 17:46:48 +00:00
Bill Wendling
1866fa680f Remove warnings about unused parameters and shadowed variables.
llvm-svn: 51266
2008-05-19 20:15:12 +00:00
Dan Gohman
75c583173c Make PassInfo noncopyable.
llvm-svn: 51085
2008-05-14 00:39:39 +00:00
Dan Gohman
138a53b303 Change class' public PassInfo variables to by initialized with the
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.

Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.

llvm-svn: 51022
2008-05-13 02:05:11 +00:00
Dan Gohman
a84b75df17 Remove uses of llvm/System/IncludeFile.h that are no longer needed.
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Devang Patel
5e8cbbea65 PassInfo keep tracks whether a pass is an analysis pass or not.
llvm-svn: 48554
2008-03-19 21:56:59 +00:00
Dan Gohman
522401f26e Add explicit keywords.
llvm-svn: 46506
2008-01-29 11:36:12 +00:00
Chris Lattner
e0b1ee937a Don't attribute in file headers anymore. See llvmdev for the
discussion of this change.  Boy are my fingers tired. ;-)

llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Chris Lattner
e047abe2b4 update comment.
llvm-svn: 43128
2007-10-18 16:10:17 +00:00
Reid Spencer
8c5c7c8453 Change casts from old style to new style. This helps document the details
better, gives the compiler a chance to validate the cast and reduces warnings
if the user turns on -Wold-style-cast option.

llvm-svn: 41033
2007-08-12 08:12:35 +00:00
Devang Patel
32786f1037 Re-install patch to enable use of PassID.
I am preparing another patch to address the failure that prompted
Chris to revert this patch earlier.

llvm-svn: 36649
2007-05-02 20:38:25 +00:00
Chris Lattner
055c13234b revert enough of devang's recent patches to get the tree basically working again
llvm-svn: 36638
2007-05-02 04:25:31 +00:00
Devang Patel
38a66bc82e Do not use typeinfo to identify pass in pass manager.
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Anton Korobeynikov
f3e62a428a Removed tabs everywhere except autogenerated & external files. Add make
target for tabs checking.

llvm-svn: 36146
2007-04-16 18:10:23 +00:00
Dan Gohman
42a3f4e16e Add the 'explicit' keyword to several constructors that accept one
argument that don't appear intended as implicit-conversion operators.

llvm-svn: 35280
2007-03-23 18:44:11 +00:00
Chris Lattner
7a39941897 Switch analysis groups to be unregistered when llvm_shutdown is called.
llvm-svn: 32110
2006-12-01 23:46:50 +00:00
Chris Lattner
1b0e89e022 Start moving pass registration over to using the ManagedStatic mechanism.
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler.  Analysis groups up next.

llvm-svn: 32108
2006-12-01 23:27:45 +00:00
Chris Lattner
dc1a679533 pass cfgonly up the ctor instead of calling an explicit method.
llvm-svn: 32105
2006-12-01 22:36:43 +00:00
Chris Lattner
a2bd5d4aaa move 'cfgonly' pass tracking into PassInfo, instead of handling it with
yet-another global data structure.

llvm-svn: 32102
2006-12-01 22:21:11 +00:00
Chris Lattner
e91ec14530 remove 'target constructor' support.
llvm-svn: 32100
2006-12-01 22:00:50 +00:00
Chris Lattner
9c68364bfc Remove dead methods
llvm-svn: 32088
2006-12-01 20:14:47 +00:00
Chris Lattner
8a59e8be23 simplify AnalysisGroup registration, eliminating one typeid call.
llvm-svn: 29932
2006-08-28 00:42:29 +00:00
Chris Lattner
a39dcb5377 eliminate RegisterOpt. It does the same thing as RegisterPass.
llvm-svn: 29925
2006-08-27 22:42:52 +00:00
Chris Lattner
f530302eda Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
llvm-svn: 29921
2006-08-27 22:30:17 +00:00
Chris Lattner
216059ff5a We no longer care whether something is an opt vs analysis pass, only whether
something is a pass vs an analysis group now.  Simplify interfaces.

llvm-svn: 29920
2006-08-27 22:21:55 +00:00
Jim Laskey
b92b14f422 Introducing plugable register allocators and instruction schedulers.
llvm-svn: 29434
2006-08-01 14:21:23 +00:00
Jim Laskey
f77eeceeba Working toward registration of register allocators.
llvm-svn: 29360
2006-07-27 20:05:00 +00:00
Reid Spencer
10b9edbb69 For PR780:
1. Move IncludeFile.h to System library
2. Move IncludeFile.cpp to System library
3. #1 and #2 required to prevent cyclic library dependencies for libSystem
4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h
5. Add IncludeFile support to various lib/System classes.
6. Add new lib/System classes to LinkAllVMCore.h
All this in an attempt to pull in lib/System to what's required for VMCore

llvm-svn: 29287
2006-07-26 16:18:00 +00:00
Reid Spencer
3832b7f9c4 For PR780:
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.

llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Chris Lattner
ff2ce95673 Speedup and simplify pass registration by the observation that there is
exactly one PassInfo object per RegisterPass object and that their lifetimes
are the same.  As such, there is no reason for the RegisterPass object to
dynamically allocate the PassInfo object at compiler startup time: just inline
the object by-value.  This should reduce codesize, heap size, and startup time. Yaay.

llvm-svn: 25521
2006-01-23 01:01:04 +00:00
Misha Brukman
3f0aa3dbf8 Remove trailing whitespace
llvm-svn: 21408
2005-04-21 20:19:05 +00:00
Chris Lattner
68ee80d686 Fix more warnings
llvm-svn: 14024
2004-06-04 20:39:05 +00:00
Chris Lattner
a079b13320 Adjust argument to match destination data type
llvm-svn: 13993
2004-06-03 21:14:56 +00:00
Chris Lattner
9995768f47 Fixes for PR114: Thanks to Reid Spencer!
llvm-svn: 10029
2003-11-16 20:21:15 +00:00
Brian Gaeke
d25f86d683 Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Misha Brukman
9116e0e93e Added ability to register FunctionPasses as optimizations, with
TargetMachine-accepting constructors (thanks to Chris).

llvm-svn: 9781
2003-11-07 18:56:32 +00:00
John Criswell
16c6cda9d5 Added LLVM copyright header (for lack of a better term).
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Chris Lattner
8b5c8f4722 Rename method to indicate what it does
llvm-svn: 9054
2003-10-12 18:51:53 +00:00
Chris Lattner
6c12776232 Remove a ton of extraneous #includes
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
John Criswell
4781723de6 Included assert.h so that the code compiles under newer versions of GCC.
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Chris Lattner
9485cd4e9b Remove support for "targetdata pass ctors"
llvm-svn: 5901
2003-04-24 18:41:30 +00:00
Chris Lattner
38e874dd6e Add new helper template function
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Vikram S. Adve
359bfe3943 Add support for passes that use a TargetMachine object.
llvm-svn: 3748
2002-09-16 16:01:39 +00:00
Chris Lattner
4253b850c0 - PassInfo class keeps track of AnalysisGroups implemented by the Pass.
- Doxygenize comments

llvm-svn: 3532
2002-08-30 20:20:39 +00:00
Chris Lattner
78cb7cd03d Add a class that is useful for hacking around linking problem due to
pass implementations not being linked in when they are used if the
implementation is in a .a file.

  - Fighting with linking problem due to removing the ::ID elements.  Now the
    implementation .cpp files for analyses are not being included into gccas
    and friends because it is linking to the .a file and there is no explicit
    symbol reference to bring in the .o file.  The new IncludeFile hack is the
    result.

llvm-svn: 3434
2002-08-21 23:48:55 +00:00
Chris Lattner
c5c1d9ad89 - Implement the new AnalysisGroup feature, neccesary for Value#ing and pointer analysis
llvm-svn: 3425
2002-08-21 22:16:59 +00:00
Chris Lattner
c197551e58 * Implement stuff so that code can declare that they only depend on the CFG of
a function, not on anything else.  This speeds up GCCAS a lot.

llvm-svn: 3156
2002-07-30 16:27:32 +00:00
Chris Lattner
77cd530591 Add rough support for LLC passes
llvm-svn: 3144
2002-07-30 03:55:01 +00:00
Chris Lattner
ec2780457d * Standardize how analysis results/passes as printed with the print() virtual
methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.

llvm-svn: 3116
2002-07-27 01:12:17 +00:00
Chris Lattner
ac27223c6a * Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses

llvm-svn: 3110
2002-07-26 21:11:38 +00:00
Chris Lattner
1c0863624d Break part of Pass.h out into PassAnalysisSupport.h
Add PassSupport.h which contains code for Pass registration

llvm-svn: 3010
2002-07-23 17:59:55 +00:00