summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GCStrategy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-7/+7
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* Remove GC roots that reference dead objects.Nicolas Geoffray2012-10-261-3/+10
| | | | llvm-svn: 166763
* Per the C++ standard, we need to include the definition of llvm::Calculate inRichard Smith2012-10-231-0/+1
| | | | | | | every TU where it's implicitly instantiated, even if there's an implicit instantiation for the same types available in another TU. llvm-svn: 166470
* Remove dead code. Improve llvm_unreachable text. Simplify some control flow.Ahmed Charles2012-02-191-1/+1
| | | | llvm-svn: 150918
* Codegen pass definition cleanup. No functionality.Andrew Trick2012-02-081-23/+18
| | | | | | | | | | | | | Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods. While cleaning up declarations, cleaned up comments (sorry for large diff). llvm-svn: 150100
* whitespaceAndrew Trick2012-02-081-52/+52
| | | | llvm-svn: 150094
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-2/+0
| | | | llvm-svn: 148578
* Add bundle aware API for querying instruction properties and switch the codeEvan Cheng2011-12-071-1/+1
| | | | | | | | | | | | | | generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
* Add a custom safepoint method, in order for language implementers to decide ↵Nicolas Geoffray2011-11-111-2/+15
| | | | | | which machine instruction gets to be a safepoint. llvm-svn: 144399
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-2/+2
| | | | | | and fixes here and there. llvm-svn: 123170
* Make more passes preserve dominators (or state that they preserve dominators ifCameron Zwarich2011-01-081-2/+11
| | | | | | | | | | they all ready do). This removes two dominator recomputations prior to isel, which is a 1% improvement in total llc time for 403.gcc. The only potentially suspect thing is making GCStrategy recompute dominators if it used a custom lowering strategy. llvm-svn: 123064
* Move some more hooks to TargetFrameInfoAnton Korobeynikov2010-11-201-3/+3
| | | | llvm-svn: 119904
* Get rid of static constructors for pass registration. Instead, every pass ↵Owen Anderson2010-10-191-1/+8
| | | | | | | | | | | | | | | | | 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
* Attach a DebugLoc to a GC point in order to get precise information in the ↵Nicolas Geoffray2010-09-241-6/+8
| | | | | | JIT of a GC point. llvm-svn: 114736
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-061-2/+2
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-2/+2
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-2/+2
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* undo 80 column trespassing I causedGabor Greif2010-07-221-2/+3
| | | | llvm-svn: 109092
* use ArgOperand API and CallSite to access arguments of CallInstGabor Greif2010-06-251-3/+3
| | | | llvm-svn: 106829
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-161-3/+3
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* reapply r101434Gabor Greif2010-04-161-3/+3
| | | | | | | | | | | | | with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
* back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif2010-04-161-3/+3
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-151-3/+3
| | | | | | | | | | | | | with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
* Make sure the initialization of a GC root is after its definition.Nicolas Geoffray2010-04-151-3/+4
| | | | llvm-svn: 101388
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-151-3/+3
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-151-3/+3
| | | | | | | | | | of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
* fix GetOrCreateTemporarySymbol to require a name, clientsChris Lattner2010-03-171-1/+1
| | | | | | | should use CreateTempSymbol() if they don't care about the name. llvm-svn: 98712
* Change this code to allocate temporary labels from mccontext,Chris Lattner2010-03-141-1/+1
| | | | | | not from MMI. llvm-svn: 98475
* switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.Chris Lattner2010-03-141-11/+8
| | | | llvm-svn: 98474
* move target-independent opcodes out of TargetInstrInfoChris Lattner2010-02-091-1/+1
| | | | | | | | | into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687
* Change errs() to dbgs().David Greene2010-01-041-1/+2
| | | | llvm-svn: 92518
* 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-2/+2
| | | | | | | 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
* When emitting a label for a PostCall safe point, the machineNicolas Geoffray2009-09-081-6/+11
| | | | | | | | instruction to insert before can be end(). getDebugLoc on end() returns an invalid value, therefore use the debug loc of the call instruction, and give it to InsertLabel. llvm-svn: 81207
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-231-1/+2
| | | | | | update all code that this affects. llvm-svn: 79830
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-141-1/+1
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin2009-07-111-1/+2
| | | | | | and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
* Eliminate several more unnecessary intptr_t casts.Dan Gohman2009-02-181-1/+1
| | | | llvm-svn: 64888
* Whitespace and comment changes. No functionality change.Bill Wendling2009-02-031-0/+1
| | | | llvm-svn: 63660
* Explicitly pass in debug location information to BuildMI.Bill Wendling2009-02-031-1/+2
| | | | llvm-svn: 63599
* Rename getAnalysisToUpdate to getAnalysisIfAvailable.Duncan Sands2009-01-281-1/+1
| | | | llvm-svn: 63198
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* Delete a dead field.Gordon Henriksen2008-08-191-1/+0
| | | | llvm-svn: 54995
* [PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata.Gordon Henriksen2008-08-191-7/+5
| | | | llvm-svn: 54994
* Don't require Registry specializations to define random static variables.Gordon Henriksen2008-08-171-7/+0
| | | | llvm-svn: 54902
* Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen2008-08-171-48/+59
| | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899
* Don't instantiate GC metadata for declarations.Gordon Henriksen2008-08-171-1/+1
| | | | llvm-svn: 54895
* Factor GC metadata table assembly generation out of Collector in preparation ↵Gordon Henriksen2008-08-171-0/+389
for splitting AsmPrinter into its own library. llvm-svn: 54881
OpenPOWER on IntegriCloud