summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/UnreachableBlockElim.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Get rid of the Pass+Context magic.Owen Anderson2009-07-221-1/+1
| | | | llvm-svn: 76702
* Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson2009-07-131-1/+1
| | | | | | | | | Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. llvm-svn: 75445
* Rename getAnalysisToUpdate to getAnalysisIfAvailable.Duncan Sands2009-01-281-1/+1
| | | | llvm-svn: 63198
* Invalidate debug/eh/gc labels when unreachable MBB is deleted.Anton Korobeynikov2008-10-311-13/+27
| | | | | | Based on patch by Martin Nowack! llvm-svn: 58536
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-1/+1
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* Remove isImm(), isReg(), and friends, in favor of Dan Gohman2008-09-131-1/+1
| | | | | | | | | isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. llvm-svn: 56189
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-2/+2
| | | | llvm-svn: 55779
* Remove more uses of std::set.Owen Anderson2008-08-141-6/+8
| | | | llvm-svn: 54787
* Reduce the entries in a phi before testing it for deadness, because removing ↵Owen Anderson2008-08-081-7/+7
| | | | | | the entries might make it dead. llvm-svn: 54535
* SDISel's constant branch folding can fold away self-loops, which doesn't ↵Owen Anderson2008-08-061-15/+40
| | | | | | | | result in any dead blocks, but rather an incorrect phi input. Add code to UnreachableMachineBlockElim to get rid of these entries. llvm-svn: 54432
* Fix breakage on ARM/2008-04-10-ScavengerAssert.ll.Owen Anderson2008-08-051-1/+2
| | | | llvm-svn: 54378
* Correctly handle replacement and removal of PHIs with one incoming register.Owen Anderson2008-08-051-1/+7
| | | | llvm-svn: 54374
* Remove unneeded iteration. Thanks to Dan for the feedback.Owen Anderson2008-08-051-16/+2
| | | | llvm-svn: 54337
* - Fix SelectionDAG to generate correct CFGs.Owen Anderson2008-08-041-3/+87
| | | | | | | | - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. llvm-svn: 54333
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-3/+3
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-0/+4
| | | | llvm-svn: 36632
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* Use hidden visibility to make symbols in an anonymous namespace getChris Lattner2006-06-281-1/+2
| | | | | | dropped. This shrinks libllvmgcc.dylib another 67K llvm-svn: 28975
* Remove trailing whitespaceMisha Brukman2005-04-211-3/+3
| | | | llvm-svn: 21420
* Fix the missing symbols problem Bill was hitting. Patch contributed byChris Lattner2005-03-171-0/+1
| | | | | | Bill Wendling!! llvm-svn: 20649
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Fix #includes of i*.h => Instructions.h as per PR403:Chris Lattner2004-07-291-1/+1
| | | | | | http://llvm.cs.uiuc.edu/PR403 . llvm-svn: 15333
* Fix a bug in the unreachable block elim pass. Dropping all references on aChris Lattner2004-07-061-4/+11
| | | | | | | | basic block clear()'s all of the operands lists, including phis. This caused removePredecessor to get confused later. Because of this, we just nuke (without prejudice) PHI nodes in unreachable blocks. llvm-svn: 14635
* Add a trivially simple pass to delete unreachable blocks from the CFG. ThisChris Lattner2004-07-021-0/+68
pass is required to paper over problems in the code generator (primarily live variables and its clients) which doesn't really have any well defined semantics for unreachable code. The proper solution to this problem is to have instruction selectors not select blocks that are unreachable. Until we have a instruction selection framework available for use, however, we can't expect all instruction selector writers to do this. Until then, this pass should be used. llvm-svn: 14563
OpenPOWER on IntegriCloud