summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/PartialSpecialization.cpp
Commit message (Collapse)AuthorAgeFilesLines
* remove the partial specialization pass. It is unmaintained and has bugs.Chris Lattner2011-01-161-228/+0
| | | | llvm-svn: 123554
* Get rid of static constructors for pass registration. Instead, every pass ↵Owen Anderson2010-10-191-1/+3
| | | | | | | | | | | | | | | | | 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
* Be more consistent in using ValueToValueMapTy.Rafael Espindola2010-10-131-3/+3
| | | | llvm-svn: 116387
* Now using a variant of the existing inlining heuristics to decide whether to ↵Kenneth Uildriks2010-10-091-40/+50
| | | | | | create a given specialization of a function in PartialSpecialization. If the total performance bonus across all callsites passing the same constant exceeds the specialization cost, we create the specialization. llvm-svn: 116158
* Now with fewer extraneous semicolons!Owen Anderson2010-10-071-1/+1
| | | | llvm-svn: 115996
* Reapply r112091 and r111922, support for metadata linking, with aDan Gohman2010-08-261-1/+2
| | | | | | | | | | | | | | 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
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-1/+1
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* simplifyGabor Greif2010-07-221-3/+2
| | | | llvm-svn: 109101
* do not access arguments via low-level interface, do not multiply dereference ↵Gabor Greif2010-07-221-17/+19
| | | | | | use_iterators llvm-svn: 109100
* Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson2010-07-211-2/+2
| | | | llvm-svn: 109045
* Use ValueMap instead of DenseMap.Devang Patel2010-06-241-3/+3
| | | | | | The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
* Partial specialization was not checking the callsite to make sure it was ↵Kenneth Uildriks2010-06-051-9/+33
| | | | | | using the same constants as the specialization, leading to calls to the wrong specialization. Patch by Takumi Nakamura\! llvm-svn: 105528
* Remove includes of Support/Compiler.h that are no longer needed after theNick Lewycky2009-10-251-1/+0
| | | | | | VISIBILITY_HIDDEN removal. llvm-svn: 85043
* Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.Nick Lewycky2009-10-251-1/+1
| | | | | | | Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
* Get rid of the Pass+Context magic.Owen Anderson2009-07-221-2/+0
| | | | llvm-svn: 76702
* Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a ↵Owen Anderson2009-07-161-0/+2
| | | | | | | | number of issues in our current context-passing stuff, which is also fixed here llvm-svn: 76089
* Keep calling-convention and tail-call bit when creating new invoke or call.Nick Lewycky2009-03-081-10/+13
| | | | llvm-svn: 66384
* add a period at the end of the comment, ignoring the fact that the comment ↵Andrew Lenharth2008-11-031-1/+1
| | | | | | would be hard pressed to be considered a sentence, but if it makes Bill happy... llvm-svn: 58630
* Ensure that we are checking only calls to the function we are interested in ↵Andrew Lenharth2008-11-031-2/+4
| | | | | | specializing llvm-svn: 58615
* dont specialize weak functions and the likeNuno Lopes2008-10-081-1/+1
| | | | llvm-svn: 57305
* try to seperate the mechanism into something others can useAndrew Lenharth2008-09-041-20/+70
| | | | llvm-svn: 55785
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* cleanup as per Duncan's reviewAndrew Lenharth2008-09-041-33/+42
| | | | llvm-svn: 55766
* Initial version of a Partial Specialization IPO pass. It triggers a couple ↵Andrew Lenharth2008-09-031-0/+127
hundred times on 176.gcc. I don't know the performance impact yet, the heuristic is quite simple still. llvm-svn: 55734
OpenPOWER on IntegriCloud