summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/BasicBlock.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert r129235 pending a vetting of the EH rewrite.Bill Wendling2011-04-101-2/+3
| | | | | | | | | | | | | | | | --- Reverse-merging r129235 into '.': D test/Feature/bb_attrs.ll U include/llvm/BasicBlock.h U include/llvm/Bitcode/LLVMBitCodes.h U lib/VMCore/AsmWriter.cpp U lib/VMCore/BasicBlock.cpp U lib/AsmParser/LLParser.cpp U lib/AsmParser/LLLexer.cpp U lib/AsmParser/LLToken.h U lib/Bitcode/Reader/BitcodeReader.cpp U lib/Bitcode/Writer/BitcodeWriter.cpp llvm-svn: 129259
* Beginning of the Great Exception Handling Rewrite.Bill Wendling2011-04-101-3/+2
| | | | | | | | | | | | | * Add a "landing pad" attribute to the BasicBlock. * Modify the bitcode reader and writer to handle said attribute. Later: The verifier will ensure that the landing pad attribute is used in the appropriate manner. I.e., not applied to the entry block, and applied only to basic blocks that are branched to via a `dispatch' instruction. (This is a work-in-progress.) llvm-svn: 129235
* Now that hasConstantValue has been made simpler, it may return theDuncan Sands2010-11-171-4/+5
| | | | | | | phi node itself if it occurs in an unreachable basic block. Protect against this. Hopefully this will fix some more buildbots. llvm-svn: 119493
* Skip debug info when looking for existing EH calls at theDale Johannesen2010-04-021-0/+11
| | | | | | beginning of a block. llvm-svn: 100230
* 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
OpenPOWER on IntegriCloud