summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Use.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename VMCore directory to IR.Chandler Carruth2013-01-021-145/+0
| | | | | | | | | | | | | | | | | | Aside from moving the actual files, this patch only updates the build system and the source file comments under lib/... that are relevant. I'll be updating other docs and other files in smaller subsequnet commits. While I've tried to test this, but it is entirely possible that there will still be some build system fallout. Also, note that I've not changed the library name itself: libLLVMCore.a is still the library name. I'd be interested in others' opinions about whether we should rename this as well (I think we should, just not sure what it might break) llvm-svn: 171359
* Add missing include of <new>Douglas Gregor2012-03-261-0/+1
| | | | llvm-svn: 153436
* Remove the AugmentedUse struct.Jay Foad2011-06-201-5/+3
| | | | | | | | I don't think the AugmentedUse struct buys us much, either in correctness or in ease of use. Ditch it, and simplify Use::getUser() and User::allocHungoffUses(). llvm-svn: 133433
* Remove useless Tag enumeration.Jay Foad2011-01-171-2/+2
| | | | llvm-svn: 123623
* Simplify the construction and destruction of Uses. SimplifyJay Foad2011-01-161-16/+8
| | | | | | User::dropHungOffUses(). llvm-svn: 123580
* Move the implementation of the User class into a new source file,Jay Foad2011-01-161-60/+1
| | | | | | User.cpp. llvm-svn: 123575
* Simplify the allocation and freeing of Users' operand lists, now thatJay Foad2011-01-071-33/+0
| | | | | | every BranchInst has a fixed number of operands. llvm-svn: 123027
* precompute 20 tagsGabor Greif2010-07-191-3/+9
| | | | llvm-svn: 108695
* fullStopTag cannot happen here, it is handled aboveGabor Greif2010-07-171-3/+1
| | | | llvm-svn: 108631
* get the first few tags from a precomputed table (count can be increased if ↵Gabor Greif2010-07-161-0/+9
| | | | | | desired) llvm-svn: 108549
* Public and private corrections, warned about by icc (#304).Duncan Sands2009-09-061-1/+1
| | | | | | Patch by Erick Tryzelaar. llvm-svn: 81107
* Rearrange operands of the BranchInst, to be able toGabor Greif2009-03-121-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | access each with a fixed negative index from op_end(). This has two important implications: - getUser() will work faster, because there are less iterations for the waymarking algorithm to perform. This is important when running various analyses that want to determine callers of basic blocks. - getSuccessor() now runs faster, because the indirection via OperandList is not necessary: Uses corresponding to the successors are at fixed offset to "this". The price we pay is the slightly more complicated logic in the operator User::delete, as it has to pick up the information whether it has to free the memory of an original unconditional BranchInst or a BranchInst that was originally conditional, but has been shortened to unconditional. I was not able to come up with a nicer solution to this problem. (And rest assured, I tried *a lot*). Similar reorderings will follow for InvokeInst and CallInst. After that some optimizations to pred_iterator and CallSite will fall out naturally. llvm-svn: 66815
* another fix to my previous commit:Gabor Greif2009-01-051-2/+5
| | | | | | | * some picky <g> compilers get insulted by const-incorrectness * respect 80-char limit llvm-svn: 61701
* eliminate tabs from my previous commitGabor Greif2009-01-051-4/+4
| | | | llvm-svn: 61695
* Get rid of the tagging functions and use PointerIntPair.Gabor Greif2009-01-051-10/+13
| | | | | | | | | This means that we have to include an additional header. This patch should be functionally equivalent. I cannot outrule any performance degradation, though I do not expect any. llvm-svn: 61694
* Introduce a typing refinenement on tagged dataGabor Greif2008-10-161-5/+3
| | | | | | | | | | | | using the 'volatile' qualifier. This should not have any operational consequences on code, because tags should always be stripped off (giving a non-volatile pointer) before dereferencing. The new qualification is there to catch some attempts to use tagged pointers in a context where an untagged pointer is appropriate. Notably this approach does not catch dereferencing of tagged pointers, but helps in separating the two concepts a bit. llvm-svn: 57641
* backing out my last commit, it was not intended to go on the trunkGabor Greif2008-09-191-34/+9
| | | | llvm-svn: 56349
* first shot at removing Use::ValGabor Greif2008-09-191-9/+34
| | | | | | untested, Use::swap() is definitely not done yet llvm-svn: 56348
* Fix a bunch of 80col violations that arose from the Create API change. Tweak ↵Gabor Greif2008-05-151-2/+4
| | | | | | makefile targets to find these better. llvm-svn: 51143
* Merge of r51073-51074 from use-diet branch.Gabor Greif2008-05-131-0/+29
| | | | | | | | | | | Do not rely on std::swap<Use>, provide a (faster) member function instead. This change is primarily necessitated by MSVC++'s incompatibility with declaring std::swap<Use> to be a friend of Use. Also contains some minor tweaks to Use inline functions, to undo pointless changes that sneaked in with the last merge. llvm-svn: 51078
* merge of use-diet branch to trunkGabor Greif2008-05-101-0/+131
llvm-svn: 50943
OpenPOWER on IntegriCloud