summaryrefslogtreecommitdiffstats
path: root/llvm/tools/bugpoint/CrashDebugger.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Return a std::unique_ptr from parseInputFile and propagate. NFC.Rafael Espindola2014-08-261-11/+8
| | | | | | | | The memory management in BugPoint is fairly convoluted, so this just unwraps one layer by changing the return type of functions that always return owned Modules. llvm-svn: 216464
* Use range based for loops to avoid needing to re-mention SmallPtrSet size.Craig Topper2014-08-241-7/+5
| | | | llvm-svn: 216351
* Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) ↵Duncan P. N. Exon Smith2014-07-211-2/+2
| | | | | | | | | iterator ranges." This reverts commit r213474 (and r213475), which causes a miscompile on a stage2 LTO build. I'll reply on the list in a moment. llvm-svn: 213562
* [C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ↵Manuel Jacob2014-07-201-2/+2
| | | | | | | | | | | | | | | | | | ranges. Summary: This patch introduces two new iterator ranges and updates existing code to use it. No functional change intended. Test Plan: All tests (make check-all) still pass. Reviewers: dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D4481 llvm-svn: 213474
* [C++] Use 'nullptr'. Tools edition.Craig Topper2014-04-251-4/+4
| | | | llvm-svn: 207176
* verify-di: Implement DebugInfoVerifierDuncan P. N. Exon Smith2014-04-151-0/+1
| | | | | | | | | | | | | | | | | | | | | Implement DebugInfoVerifier, which steals verification relying on DebugInfoFinder from Verifier. - Adds LegacyDebugInfoVerifierPassPass, a ModulePass which wraps DebugInfoVerifier. Uses -verify-di command-line flag. - Change verifyModule() to invoke DebugInfoVerifier as well as Verifier. - Add a call to createDebugInfoVerifierPass() wherever there was a call to createVerifierPass(). This implementation as a module pass should sidestep efficiency issues, allowing us to turn debug info verification back on. <rdar://problem/15500563> llvm-svn: 206300
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-081-15/+15
| | | | | | class. llvm-svn: 203345
* [Modules] Move CFG.h to the IR library as it defines graph traits overChandler Carruth2014-03-041-1/+1
| | | | | | IR types. llvm-svn: 202827
* [cleanup] Move the Dominators.h and Verifier.h headers into the IRChandler Carruth2014-01-131-1/+1
| | | | | | | | | | | | | | | | | | directory. These passes are already defined in the IR library, and it doesn't make any sense to have the headers in Analysis. Long term, I think there is going to be a much better way to divide these matters. The dominators code should be fully separated into the abstract graph algorithm and have that put in Support where it becomes obvious that evn Clang's CFGBlock's can use it. Then the verifier can manually construct dominance information from the Support-driven interface while the Analysis library can provide a pass which both caches, reconstructs, and supports a nice update API. But those are very long term, and so I don't want to leave the really confusing structure until that day arrives. llvm-svn: 199082
* Added std:: qualifier to find() invocationDmitri Gribenko2013-09-021-4/+4
| | | | | | | | | | Iterator of std::vector may be implemented as a raw pointer. In this case ADL does not find the find() function in the std namespace. For example, this is the case with STDCXX implementation of vector. Patch by Konstantin Tokarev. llvm-svn: 189733
* Don't use PathV1.h in CrashDebugger.cpp.Rafael Espindola2013-06-171-8/+5
| | | | llvm-svn: 184109
* Don't use PathV1.h in ToolRunner.h.Rafael Espindola2013-06-171-0/+1
| | | | llvm-svn: 184107
* Move all of the header files which are involved in modelling the LLVM IRChandler Carruth2013-01-021-5/+5
| | | | | | | | | | | | | | | | | | | | | into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
* Sort the #include lines for tools/...Chandler Carruth2012-12-041-6/+6
| | | | | | | | Again, tools are trickier to pick the main module header for than library source files. I've started to follow the pattern of using LLVMContext.h when it is included as a stub for program source files. llvm-svn: 169252
* One more step towards making doInitialization and doFinalization useful forPedro Artigas2012-11-291-2/+0
| | | | | | | start up and clean up module passes, now that ASAN and TSAN are fixed the tests pass llvm-svn: 168905
* Revert r168635 "Step towards implementation of pass manager with ↵Owen Anderson2012-11-271-0/+2
| | | | | | | | doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". It appears to have broken at least one buildbot. llvm-svn: 168654
* Step towards implementation of pass manager with doInitialization and ↵Owen Anderson2012-11-261-2/+0
| | | | | | | | doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model Patch by Pedro Artigas, with feedback from by Chandler Carruth. llvm-svn: 168635
* Add doInitialization and doFinalization methods to ModulePass's, to allow ↵Owen Anderson2012-11-151-0/+2
| | | | | | | | them to be re-initialized and reused on multiple Module's. Patch by Pedro Artigas. llvm-svn: 168008
* Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. ↵Sylvestre Ledru2012-09-271-1/+1
| | | | | | See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 llvm-svn: 164768
* Fix a typo 'iff' => 'if'Sylvestre Ledru2012-09-271-1/+1
| | | | llvm-svn: 164767
* Add braces to remove silly warning.Bill Wendling2011-12-251-1/+2
| | | | llvm-svn: 147264
* Unweaken vtables as per ↵David Blaikie2011-12-201-1/+1
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* A couple misc fixes so that bugpoint doesn't explode reducing code ↵Eli Friedman2011-11-011-1/+5
| | | | | | containing landingpads. llvm-svn: 143435
* Be more consistent in using ValueToValueMapTy.Rafael Espindola2010-10-131-4/+4
| | | | llvm-svn: 116387
* Use RunPassesOn as in the rest of bugpoint.Rafael Espindola2010-08-101-7/+16
| | | | llvm-svn: 110682
* Most of bugpoint now only needs to know the pass names.Rafael Espindola2010-08-081-5/+5
| | | | llvm-svn: 110534
* Add const to compileProgram and to the various test functions in CrashDebugger.Rafael Espindola2010-08-051-12/+14
| | | | llvm-svn: 110306
* Add a Module argument to the remaining runPasses methods and mark getContextRafael Espindola2010-08-051-1/+1
| | | | | | const. llvm-svn: 110300
* Make EmitProgressBitcode const and add a Module argument to runPasses. UseRafael Espindola2010-08-051-1/+1
| | | | | | that argument to simplify runPassesOn. llvm-svn: 110291
* Instead of abusing swapProgramIn, just add a Module argument toRafael Espindola2010-07-281-5/+5
| | | | | | EmitProgressBitcode. llvm-svn: 109602
* Speculatively revert r108813, in an attempt to get the self-host buildbots ↵Owen Anderson2010-07-201-5/+5
| | | | | | | | working again. I don't see why this patch would cause them to fail the way they are, but none of the other intervening patches seem likely either. llvm-svn: 108818
* Reapply r108794, a fix for the failing test from last time.Owen Anderson2010-07-201-5/+5
| | | | llvm-svn: 108813
* Revert r108794, "Separate PassInfo into two classes: a constructor-freeDaniel Dunbar2010-07-201-5/+5
| | | | | | | superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is breaking teh everything. llvm-svn: 108805
* Separate PassInfo into two classes: a constructor-free superclass ↵Owen Anderson2010-07-201-5/+5
| | | | | | (StaticPassInfo) and a constructor-ful subclass (PassInfo). llvm-svn: 108794
* Use ValueMap instead of DenseMap.Devang Patel2010-06-241-12/+12
| | | | | | The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
* Use ->isVoidTy().Dan Gohman2010-06-071-3/+2
| | | | llvm-svn: 105550
* No need to special-case structs here; structs are first-class now.Dan Gohman2010-06-051-3/+1
| | | | llvm-svn: 105513
* Remove use of exceptions from bugpoint. No deliberate functionality change!Nick Lewycky2010-04-121-26/+37
| | | | llvm-svn: 101013
* There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands2010-02-161-1/+1
| | | | | | | and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
* Prune #includes from llvm/Linker.h and llvm/System/Path.h,Chris Lattner2009-08-231-2/+2
| | | | | | | | | | | | | | | | | | forcing them down into various .cpp files. This change also: 1. Renames TimeValue::toString() and Path::toString() to ::str() for similarity with the STL. 2. Removes all stream insertion support for sys::Path, forcing clients to call .str(). 3. Removes a use of Config/alloca.h from bugpoint, using smallvector instead. 4. Weans llvm-db off <iostream> sys::Path really needs to be gutted, but I don't have the desire to do it at this point. llvm-svn: 79869
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-4/+5
| | | | llvm-svn: 78948
* Move a few more APIs back to 2.5 forms. The only remaining ones left to ↵Owen Anderson2009-07-311-2/+1
| | | | | | | | change back are metadata related, which I'm waiting on to avoid conflicting with Devang. llvm-svn: 77721
* Convert more tools code from cerr and cout to errs() and outs().Dan Gohman2009-07-161-30/+28
| | | | llvm-svn: 76070
* Use errs() instead of std::cerr.Dan Gohman2009-07-151-5/+6
| | | | llvm-svn: 75791
* Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson2009-07-131-1/+2
| | | | | | | | | 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
* Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson2009-07-011-1/+1
| | | | | | | | | | LLVMContext through a lot of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools. Patches for Clang and LLVM-GCC to follow. llvm-svn: 74614
* Fix the crash debugger to actually bisect globals once it's determined that itNick Lewycky2009-05-251-1/+1
| | | | | | can't just eliminate all global initializers. llvm-svn: 72378
* Add a bisection step on the list of instructions before doing the linearNick Lewycky2009-05-251-0/+92
| | | | | | | simplification. It's not clear to me whether this can replace the first of the linear instruction simplification stages or not, so I left it in. llvm-svn: 72377
* Make bugpoint emit a bugpoint-reduced-blocks.bc, because bugpoint itselfTorok Edwin2009-05-241-0/+3
| | | | | | | can crash during instruction simplification (for example if it creates a broken module). llvm-svn: 72362
* Add -disable-global-remove option to bugpoint.Torok Edwin2009-05-241-1/+6
| | | | | | | | | Sometimes when bugpointing a crash the bugpoint-reduced-simplified.bc reproduces a totally different bug than the original one ("GV doesn't have initializer"). Although its useful to report that bug too, I need a way to reduce the original bug, hence I introduced -disable-global-remove. llvm-svn: 72361
OpenPOWER on IntegriCloud