summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/SimplifyCFG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* rename SimplifyCFG.cpp -> SimplifyCFGPass.cppChris Lattner2008-05-141-231/+0
| | | | llvm-svn: 51130
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-2/+3
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-3/+3
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* simplify code, no functionality change.Chris Lattner2008-02-141-7/+9
| | | | llvm-svn: 47116
* If there are no machine instructions emitted for a function, then insertBill Wendling2008-01-261-14/+1
| | | | | | | a "nop" instruction so that we don't have the function's label associated with something that it's not supposed to be associated with. llvm-svn: 46394
* If we have a function like this:Bill Wendling2008-01-261-1/+14
| | | | | | | | | | | | | | | | | | | | | | void bork() { int *address = 0; *address = 0; } It's compiled into LLVM code that looks like this: define void @bork() noreturn nounwind { entry: unreachable } This is bad on some platforms (like PPC) because it will generate the label for the function but no body. The label could end up being associated with some non-code related stuff, like a section. This places a "trap" instruction if the SimplifyCFG pass removed all code from the function leaving only one "unreachable" instruction. llvm-svn: 46387
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Rename isNoReturn to doesNotReturn, and isNoUnwind toDuncan Sands2007-12-181-2/+2
| | | | | | doesNotThrow. llvm-svn: 45160
* Make PruneEH update the nounwind/noreturn attributesDuncan Sands2007-12-101-1/+1
| | | | | | on functions as it calculates them. llvm-svn: 44802
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-031-1/+1
| | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
* update file comment.Chris Lattner2007-12-031-2/+5
| | | | llvm-svn: 44543
* Add some convenience methods for querying attributes, andDuncan Sands2007-11-281-31/+2
| | | | | | use them. llvm-svn: 44403
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-14/+4
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* Remove some logic I thoughtlessly copied overDuncan Sands2007-11-231-3/+0
| | | | | | | | from the old ADCE implementation (there it was correct because the transform was being done for read-only functions). llvm-svn: 44287
* Turn invokes of nounwind functions into ordinary calls.Duncan Sands2007-11-221-1/+49
| | | | llvm-svn: 44280
* Implement PR1796 and Transforms/SimplifyCFG/noreturn-call.llChris Lattner2007-11-141-15/+59
| | | | | | by inserting unreachable after no-return calls. llvm-svn: 44099
* Implement PR1786 by iterating between dead cycle eliminationChris Lattner2007-11-131-33/+63
| | | | | | and simplifycfg in the rare cases when it is needed. llvm-svn: 44044
* Finishing initial docs for all transformations in Passes.html.Gordon Henriksen2007-11-041-5/+5
| | | | | | Also cleaned up some comments in source files. llvm-svn: 43674
* 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
* Use a worklist-driven algorithm instead of a recursive one.Chris Lattner2007-04-051-27/+36
| | | | llvm-svn: 35680
* switch MarkAliveBlocks over to using SmallPtrSet instead of std::set, speedingChris Lattner2007-03-041-5/+5
| | | | | | up simplifycfg by 20% llvm-svn: 34901
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-1/+2
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* Switch over Transforms/Scalar to use the STATISTIC macro. For each statisticChris Lattner2006-12-191-2/+3
| | | | | | | converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
* Incorporate any changes in the successor blocks into the result ofReid Spencer2006-12-081-1/+1
| | | | | | MarkAliveBlocks. llvm-svn: 32375
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-1/+1
| | | | | | is 'unsigned'. llvm-svn: 32279
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* Remove trailing whitespaceMisha Brukman2005-04-211-3/+3
| | | | llvm-svn: 21427
* Hrm, some people complain when the compiler cheerfully tells them what it'sChris Lattner2004-10-191-1/+0
| | | | | | doing... I guess they're right. llvm-svn: 17142
* Turn store -> null/undef into the LLVM unreachable instruction! This simpleChris Lattner2004-10-181-0/+27
| | | | | | | | change hacks off 10K of bytecode from perlbmk (.5%) even though the front-end is not generating them yet and we are not optimizing the resultant code. This isn't too bad. llvm-svn: 17111
* 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
* Finegrainify namespacificationChris Lattner2004-01-091-5/+2
| | | | llvm-svn: 10725
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+5
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* simplify-cfg is really a function passChris Lattner2003-10-051-1/+1
| | | | llvm-svn: 8868
* Updates to work with recent Statistic's changes:Chris Lattner2002-10-011-3/+3
| | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. llvm-svn: 4002
* Eliminate extraneous #includeChris Lattner2002-09-241-1/+0
| | | | llvm-svn: 3916
* * Add support for different "PassType's"Chris Lattner2002-07-261-1/+1
| | | | | | | | | | | | | | | * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses llvm-svn: 3113
* *** empty log message ***Chris Lattner2002-07-231-2/+1
| | | | llvm-svn: 3016
* MEGAPATCH checkin.Chris Lattner2002-06-251-16/+13
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2779
* New CFG Simplification pass: removed from the old DCE passChris Lattner2002-05-211-0/+100
llvm-svn: 2700
OpenPOWER on IntegriCloud