Lines Matching defs:BD

47     BugDriver &BD;
49 ReducePassList(BugDriver &bd) : BD(bd) {}
70 if (BD.runPasses(BD.getProgram(), Prefix, PrefixOutput))
73 OrigProgram = BD.Program;
75 BD.Program = ParseInputFile(PrefixOutput, BD.getContext());
76 if (BD.Program == 0) {
77 errs() << BD.getToolName() << ": Error reading bitcode file '"
87 if (BD.runPasses(BD.getProgram(), Suffix)) {
94 delete BD.Program;
95 BD.Program = OrigProgram;
106 BugDriver &BD;
111 : BD(bd), TestFn(testFn) {}
132 Module *M = CloneModule(BD.getProgram(), VMap);
157 if (TestFn(BD, M)) {
158 BD.setNewProgram(M); // It crashed, keep the trimmed version...
176 BugDriver &BD;
181 : BD(bd), TestFn(testFn) {}
200 BD.getProgram()->getFunction("main")) ==
206 Module *M = CloneModule(BD.getProgram(), VMap);
229 if (TestFn(BD, M)) {
230 BD.setNewProgram(M); // It crashed, keep the trimmed version...
249 BugDriver &BD;
254 : BD(bd), TestFn(testFn) {}
273 Module *M = CloneModule(BD.getProgram(), VMap);
324 Module *New = BD.runPassesOn(M, Passes);
333 if (TestFn(BD, M)) {
334 BD.setNewProgram(M); // It crashed, keep the trimmed version...
358 BugDriver &BD;
363 : BD(bd), TestFn(testFn) {}
383 Module *M = CloneModule(BD.getProgram(), VMap);
416 if (TestFn(BD, M)) {
417 BD.setNewProgram(M); // It crashed, keep the trimmed version...
434 static bool DebugACrash(BugDriver &BD,
440 BD.getProgram()->global_begin() != BD.getProgram()->global_end()) {
443 Module *M = CloneModule(BD.getProgram());
460 if (TestFn(BD, M)) { // Still crashes?
461 BD.setNewProgram(M);
469 for (Module::global_iterator I = BD.getProgram()->global_begin(),
470 E = BD.getProgram()->global_end(); I != E; ++I)
479 ReduceCrashingGlobalVariables(BD, TestFn).reduceList(GVs, Error);
484 BD.EmitProgressBitcode(BD.getProgram(), "reduced-global-variables");
492 for (Module::iterator I = BD.getProgram()->begin(),
493 E = BD.getProgram()->end(); I != E; ++I)
502 ReduceCrashingFunctions(BD, TestFn).reduceList(Functions, Error);
505 BD.EmitProgressBitcode(BD.getProgram(), "reduced-function");
515 for (Module::const_iterator I = BD.getProgram()->begin(),
516 E = BD.getProgram()->end(); I != E; ++I)
520 ReduceCrashingBlocks(BD, TestFn).reduceList(Blocks, Error);
522 BD.EmitProgressBitcode(BD.getProgram(), "reduced-blocks");
529 for (Module::const_iterator MI = BD.getProgram()->begin(),
530 ME = BD.getProgram()->end(); MI != ME; ++MI)
538 ReduceCrashingInstructions(BD, TestFn).reduceList(Insts, Error);
564 for (Module::const_iterator FI = BD.getProgram()->begin(),
565 E = BD.getProgram()->end(); FI != E; ++FI)
580 Module *M = BD.deleteInstructionFromProgram(I, Simplification);
583 if (TestFn(BD, M)) {
586 BD.setNewProgram(M);
608 Module *M = CloneModule(BD.getProgram());
609 M = BD.performFinalCleanups(M, true);
612 if (TestFn(BD, M)) {
613 BD.setNewProgram(M); // Yup, it does, keep the reduced version...
619 BD.EmitProgressBitcode(BD.getProgram(), "reduced-simplified");
624 static bool TestForOptimizerCrash(const BugDriver &BD, Module *M) {
625 return BD.runPasses(M);
652 static bool TestForCodeGenCrash(const BugDriver &BD, Module *M) {
654 BD.compileProgram(M, &Error);