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 == nullptr) {
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);
417 if (TestFn(BD, M)) {
418 BD.setNewProgram(M); // It crashed, keep the trimmed version...
435 static bool DebugACrash(BugDriver &BD,
441 BD.getProgram()->global_begin() != BD.getProgram()->global_end()) {
444 Module *M = CloneModule(BD.getProgram());
461 if (TestFn(BD, M)) { // Still crashes?
462 BD.setNewProgram(M);
470 for (Module::global_iterator I = BD.getProgram()->global_begin(),
471 E = BD.getProgram()->global_end(); I != E; ++I)
480 ReduceCrashingGlobalVariables(BD, TestFn).reduceList(GVs, Error);
485 BD.EmitProgressBitcode(BD.getProgram(), "reduced-global-variables");
493 for (Module::iterator I = BD.getProgram()->begin(),
494 E = BD.getProgram()->end(); I != E; ++I)
503 ReduceCrashingFunctions(BD, TestFn).reduceList(Functions, Error);
506 BD.EmitProgressBitcode(BD.getProgram(), "reduced-function");
516 for (Module::const_iterator I = BD.getProgram()->begin(),
517 E = BD.getProgram()->end(); I != E; ++I)
521 ReduceCrashingBlocks(BD, TestFn).reduceList(Blocks, Error);
523 BD.EmitProgressBitcode(BD.getProgram(), "reduced-blocks");
530 for (Module::const_iterator MI = BD.getProgram()->begin(),
531 ME = BD.getProgram()->end(); MI != ME; ++MI)
539 ReduceCrashingInstructions(BD, TestFn).reduceList(Insts, Error);
565 for (Module::const_iterator FI = BD.getProgram()->begin(),
566 E = BD.getProgram()->end(); FI != E; ++FI)
581 Module *M = BD.deleteInstructionFromProgram(I, Simplification);
584 if (TestFn(BD, M)) {
587 BD.setNewProgram(M);
609 Module *M = CloneModule(BD.getProgram());
610 M = BD.performFinalCleanups(M, true);
613 if (TestFn(BD, M)) {
614 BD.setNewProgram(M); // Yup, it does, keep the reduced version...
620 BD.EmitProgressBitcode(BD.getProgram(), "reduced-simplified");
625 static bool TestForOptimizerCrash(const BugDriver &BD, Module *M) {
626 return BD.runPasses(M);
653 static bool TestForCodeGenCrash(const BugDriver &BD, Module *M) {
655 BD.compileProgram(M, &Error);