aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/bugpoint/CrashDebugger.cpp
AgeCommit message (Collapse)AuthorFilesLines
2014-08-26Return a std::unique_ptr from parseInputFile and propagate. NFC.Rafael Espindola1-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
2014-08-24Use range based for loops to avoid needing to re-mention SmallPtrSet size.Craig Topper1-7/+5
llvm-svn: 216351
2014-07-21Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) ↵Duncan P. N. Exon Smith1-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
2014-07-20[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ↵Manuel Jacob1-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
2014-04-25[C++] Use 'nullptr'. Tools edition.Craig Topper1-4/+4
llvm-svn: 207176
2014-04-15verify-di: Implement DebugInfoVerifierDuncan P. N. Exon Smith1-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
2014-03-08[C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper1-15/+15
class. llvm-svn: 203345
2014-03-04[Modules] Move CFG.h to the IR library as it defines graph traits overChandler Carruth1-1/+1
IR types. llvm-svn: 202827
2014-01-13[cleanup] Move the Dominators.h and Verifier.h headers into the IRChandler Carruth1-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
2013-09-02Added std:: qualifier to find() invocationDmitri Gribenko1-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
2013-06-17Don't use PathV1.h in CrashDebugger.cpp.Rafael Espindola1-8/+5
llvm-svn: 184109
2013-06-17Don't use PathV1.h in ToolRunner.h.Rafael Espindola1-0/+1
llvm-svn: 184107
2013-01-02Move all of the header files which are involved in modelling the LLVM IRChandler Carruth1-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
2012-12-04Sort the #include lines for tools/...Chandler Carruth1-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
2012-11-29One more step towards making doInitialization and doFinalization useful forPedro Artigas1-2/+0
start up and clean up module passes, now that ASAN and TSAN are fixed the tests pass llvm-svn: 168905
2012-11-27Revert r168635 "Step towards implementation of pass manager with ↵Owen Anderson1-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
2012-11-26Step towards implementation of pass manager with doInitialization and ↵Owen Anderson1-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
2012-11-15Add doInitialization and doFinalization methods to ModulePass's, to allow ↵Owen Anderson1-0/+2
them to be re-initialized and reused on multiple Module's. Patch by Pedro Artigas. llvm-svn: 168008
2012-09-27Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. ↵Sylvestre Ledru1-1/+1
See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 llvm-svn: 164768
2012-09-27Fix a typo 'iff' => 'if'Sylvestre Ledru1-1/+1
llvm-svn: 164767
2011-12-25Add braces to remove silly warning.Bill Wendling1-1/+2
llvm-svn: 147264
2011-12-20Unweaken vtables as per ↵David Blaikie1-1/+1
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
2011-11-01A couple misc fixes so that bugpoint doesn't explode reducing code ↵Eli Friedman1-1/+5
containing landingpads. llvm-svn: 143435
2010-10-13Be more consistent in using ValueToValueMapTy.Rafael Espindola1-4/+4
llvm-svn: 116387
2010-08-10Use RunPassesOn as in the rest of bugpoint.Rafael Espindola1-7/+16
llvm-svn: 110682
2010-08-08Most of bugpoint now only needs to know the pass names.Rafael Espindola1-5/+5
llvm-svn: 110534
2010-08-05Add const to compileProgram and to the various test functions in CrashDebugger.Rafael Espindola1-12/+14
llvm-svn: 110306
2010-08-05Add a Module argument to the remaining runPasses methods and mark getContextRafael Espindola1-1/+1
const. llvm-svn: 110300
2010-08-05Make EmitProgressBitcode const and add a Module argument to runPasses. UseRafael Espindola1-1/+1
that argument to simplify runPassesOn. llvm-svn: 110291
2010-07-28Instead of abusing swapProgramIn, just add a Module argument toRafael Espindola1-5/+5
EmitProgressBitcode. llvm-svn: 109602
2010-07-20Speculatively revert r108813, in an attempt to get the self-host buildbots ↵Owen Anderson1-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
2010-07-20Reapply r108794, a fix for the failing test from last time.Owen Anderson1-5/+5
llvm-svn: 108813
2010-07-20Revert r108794, "Separate PassInfo into two classes: a constructor-freeDaniel Dunbar1-5/+5
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is breaking teh everything. llvm-svn: 108805
2010-07-20Separate PassInfo into two classes: a constructor-free superclass ↵Owen Anderson1-5/+5
(StaticPassInfo) and a constructor-ful subclass (PassInfo). llvm-svn: 108794
2010-06-24Use ValueMap instead of DenseMap.Devang Patel1-12/+12
The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
2010-06-07Use ->isVoidTy().Dan Gohman1-3/+2
llvm-svn: 105550
2010-06-05No need to special-case structs here; structs are first-class now.Dan Gohman1-3/+1
llvm-svn: 105513
2010-04-12Remove use of exceptions from bugpoint. No deliberate functionality change!Nick Lewycky1-26/+37
llvm-svn: 101013
2010-02-16There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands1-1/+1
and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
2009-08-23Prune #includes from llvm/Linker.h and llvm/System/Path.h,Chris Lattner1-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
2009-08-13Push LLVMContexts through the IntegerType APIs.Owen Anderson1-4/+5
llvm-svn: 78948
2009-07-31Move a few more APIs back to 2.5 forms. The only remaining ones left to ↵Owen Anderson1-2/+1
change back are metadata related, which I'm waiting on to avoid conflicting with Devang. llvm-svn: 77721
2009-07-16Convert more tools code from cerr and cout to errs() and outs().Dan Gohman1-30/+28
llvm-svn: 76070
2009-07-15Use errs() instead of std::cerr.Dan Gohman1-5/+6
llvm-svn: 75791
2009-07-13Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson1-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
2009-07-01Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson1-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
2009-05-25Fix the crash debugger to actually bisect globals once it's determined that itNick Lewycky1-1/+1
can't just eliminate all global initializers. llvm-svn: 72378
2009-05-25Add a bisection step on the list of instructions before doing the linearNick Lewycky1-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
2009-05-24Make bugpoint emit a bugpoint-reduced-blocks.bc, because bugpoint itselfTorok Edwin1-0/+3
can crash during instruction simplification (for example if it creates a broken module). llvm-svn: 72362
2009-05-24Add -disable-global-remove option to bugpoint.Torok Edwin1-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