summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/BasicBlock.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Qualify a bunch of explicit template instantiations to satisfy clang++.John McCall2009-12-191-1/+1
| | | | llvm-svn: 91736
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-1/+1
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Revert 85678/85680. The decision is to stay with the current form of Chris Lattner2009-11-011-3/+5
| | | | | | | indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it for simplicity. llvm-svn: 85699
* Make blockaddress(@func, null) be valid, and make 'deleting a basic Chris Lattner2009-10-311-5/+3
| | | | | | | | | | | | block with a blockaddress still referring to it' replace the invalid blockaddress with a new blockaddress(@func, null) instead of a inttoptr(1). This changes the bitcode encoding format, and still needs codegen support (this should produce a non-zero value, referring to the entry block of the function would also be quite reasonable). llvm-svn: 85678
* if basic blocks are destroyed while there are *just* BlockAddress' hanging Chris Lattner2009-10-301-0/+18
| | | | | | | around, then zap them. This is analogous to dangling constantexprs hanging off functions. llvm-svn: 85627
* make hasAddressTaken() constant time by storing a refcount in BB's subclass ↵Chris Lattner2009-10-301-8/+0
| | | | | | data. llvm-svn: 85625
* Add a hasAddressTaken for BasicBlock.Dan Gohman2009-10-291-0/+9
| | | | llvm-svn: 85449
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-3/+4
| | | | llvm-svn: 78948
* Tidy #includes.Dan Gohman2009-08-111-1/+0
| | | | llvm-svn: 78677
* Move more code back to 2.5 APIs.Owen Anderson2009-07-301-1/+1
| | | | llvm-svn: 77635
* Initial update to VMCore to use Twines for string arguments.Daniel Dunbar2009-07-251-2/+2
| | | | | | | - The only meat here is in Value.{h,cpp} the rest is essential 'const std::string &' -> 'const Twine &'. llvm-svn: 77048
* Get rid of the Pass+Context magic.Owen Anderson2009-07-221-3/+3
| | | | llvm-svn: 76702
* LLVMContext-ification.Owen Anderson2009-07-071-1/+2
| | | | llvm-svn: 74973
* "LLVMContext* " --> "LLVMContext *"Owen Anderson2009-07-061-1/+1
| | | | llvm-svn: 74878
* More LLVMContext-ification.Owen Anderson2009-07-051-0/+4
| | | | llvm-svn: 74807
* simplify the way how traits get hold of the symbol tableGabor Greif2009-03-071-5/+3
| | | | llvm-svn: 66336
* further simplifications arising from peruse of the more declarative interfaceGabor Greif2009-03-071-4/+0
| | | | llvm-svn: 66333
* Introduce a new technique for merging BasicBlock with Instruction sentinel ↵Gabor Greif2009-02-271-34/+0
| | | | | | | | | by superposition. This looks dangerous, but isn't because the sentinel is accessed in special way only, namely the Next and Prev fields of it, and these are guaranteed to exist. llvm-svn: 65626
* fix grammar, thanks Duncan!Torok Edwin2008-12-111-4/+4
| | | | llvm-svn: 60875
* introduce BasicBlock::getUniquePredecessor()Torok Edwin2008-12-111-0/+19
| | | | llvm-svn: 60872
* Fold the useful features of alist and alist_node into ilist, andDan Gohman2008-07-281-1/+4
| | | | | | | | | | | | | | | | a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. llvm-svn: 54146
* back out last commit: The .cpp file for a module should include its ↵Gabor Greif2008-05-271-0/+1
| | | | | | corresponding header first, even if redundant. llvm-svn: 51598
* prune unneeded #includesGabor Greif2008-05-271-1/+0
| | | | llvm-svn: 51590
* Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places toDan Gohman2008-05-231-9/+8
| | | | | | use it instead of duplicating its functionality. llvm-svn: 51499
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-251-32/+6
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-3/+7
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Two things. Preserve the unwind_to when splitting a BB.Nick Lewycky2008-03-091-6/+13
| | | | | | | Add the ability to remove just one instance of a BB from a phi node. This fixes the compile error in the tree now. llvm-svn: 48085
* Add an unwind_to field to basic blocks, making them Users instead of Values.Nick Lewycky2008-03-021-2/+21
| | | | | | This is the first checkin for PR1269, the new EH infrastructure. llvm-svn: 47802
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Reverting dtor devirtualization patch.Gordon Henriksen2007-12-101-9/+29
| | | | | | | _sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed _sabre_: the vtable lives to fight another day llvm-svn: 44760
* Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!Gordon Henriksen2007-12-091-29/+9
| | | | llvm-svn: 44747
* Remove meaningless qualifiers from return types, avoiding compiler warnings.Dan Gohman2007-11-191-1/+1
| | | | llvm-svn: 44240
* DummyInst's member functions don't need to be virtual.Dan Gohman2007-07-261-2/+2
| | | | llvm-svn: 40530
* The (negative) offset from a SymbolTableListTraits-using ilist to its containerChris Lattner2007-04-171-2/+0
| | | | | | | | | object is always constant. As such, evaluate it at compile time instead of storing it as an ivar in SymbolTableListTraits. This shrinks every SymbolTableListTraits ilist by a word, shrinking BasicBlock from 44->40 bytes, Function from 96->88 bytes, and Module from 60->52 bytes. llvm-svn: 36189
* Refactor SymbolTableListTraits to only have a single pointer in it, insteadChris Lattner2007-04-171-9/+19
| | | | | | | | of two. This shrinkifies Function by 8 bytes (104->96) and Module by 8 bytes (68->60). On a testcase of mine, this reduces the memory used to read a module header from 565680b to 561024, a little over 4K. llvm-svn: 36188
* Switch ValueSymbolTable to use StringMap<Value*> instead of ↵Chris Lattner2007-02-121-1/+3
| | | | | | | | | std::map<std::string, Value*> as its main datastructure. There are many improvements yet to be made, but this speeds up opt --std-compile-opts on 447.dealII by 7.3%. llvm-svn: 34193
* add method, correct commentChris Lattner2006-09-231-3/+10
| | | | llvm-svn: 30584
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* Use hidden visibility to reduce codesizeChris Lattner2006-06-281-1/+2
| | | | llvm-svn: 28974
* When asked not to delete useless PHIs, really don't delete them, no matter howOwen Anderson2006-06-141-1/+2
| | | | | | redundant they are. llvm-svn: 28777
* Remove dead code.Vladimir Prus2006-06-081-1/+1
| | | | llvm-svn: 28725
* New method BasicBlock::getFirstNonPHI.Vladimir Prus2006-06-081-0/+11
| | | | llvm-svn: 28724
* Add a helper methodChris Lattner2005-08-121-0/+8
| | | | llvm-svn: 22768
* Fix an iterator invalidation problem when we decide a phi has a constant valueChris Lattner2005-08-051-1/+2
| | | | llvm-svn: 22675
* Now that hasConstantValue is more careful w.r.t. returning values that onlyChris Lattner2005-08-051-5/+4
| | | | | | | dominate the PHI node, this code can go away. This also makes passes more aggressive, e.g. implementing Transforms/CondProp/phisimplify2.ll llvm-svn: 22670
* Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization intoNate Begeman2005-08-041-1/+9
| | | | | | | | BasicBlock's removePredecessor routine. This requires shuffling around the definition and implementation of hasContantValue from Utils.h,cpp into Instructions.h,cpp llvm-svn: 22664
* Eliminate tabs and trailing spacesJeff Cohen2005-04-231-2/+2
| | | | llvm-svn: 21480
* Remove trailing whitespaceMisha Brukman2005-04-211-9/+9
| | | | llvm-svn: 21427
* Improve doxygen, from part of Evan's patch that didn't apply.Chris Lattner2005-04-211-6/+6
| | | | llvm-svn: 21394
* Improve doxygen documentation, patch contributed by Evan Jones!Chris Lattner2005-04-211-11/+11
| | | | llvm-svn: 21393
OpenPOWER on IntegriCloud