Home | History | Annotate | Download | only in bugpoint

Lines Matching refs:BD

61     BugDriver &BD;
63 ReducePassList(BugDriver &bd) : BD(bd) {}
84 if (BD.runPasses(BD.getProgram(), Prefix, PrefixOutput))
87 OrigProgram = BD.Program;
89 BD.Program = parseInputFile(PrefixOutput, BD.getContext()).release();
90 if (BD.Program == nullptr) {
91 errs() << BD.getToolName() << ": Error reading bitcode file '"
101 if (BD.runPasses(BD.getProgram(), Suffix)) {
108 delete BD.Program;
109 BD.Program = OrigProgram;
120 BugDriver &BD;
123 ReduceCrashingGlobalVariables(BugDriver &bd,
125 : BD(bd), TestFn(testFn) {}
146 Module *M = CloneModule(BD.getProgram(), VMap).release();
171 if (TestFn(BD, M)) {
172 BD.setNewProgram(M); // It crashed, keep the trimmed version...
190 BugDriver &BD;
193 ReduceCrashingFunctions(BugDriver &bd,
195 : BD(bd), TestFn(testFn) {}
237 BD.getProgram()->getFunction("main")) ==
243 Module *M = CloneModule(BD.getProgram(), VMap).release();
306 if (TestFn(BD, M)) {
307 BD.setNewProgram(M); // It crashed, keep the trimmed version...
326 BugDriver &BD;
329 ReduceCrashingBlocks(BugDriver &bd,
331 : BD(bd), TestFn(testFn) {}
350 Module *M = CloneModule(BD.getProgram(), VMap).release();
401 std::unique_ptr<Module> New = BD.runPassesOn(M, Passes);
410 if (TestFn(BD, M)) {
411 BD.setNewProgram(M); // It crashed, keep the trimmed version...
435 BugDriver &BD;
438 ReduceCrashingInstructions(BugDriver &bd,
440 : BD(bd), TestFn(testFn) {}
460 Module *M = CloneModule(BD.getProgram(), VMap).release();
493 if (TestFn(BD, M)) {
494 BD.setNewProgram(M); // It crashed, keep the trimmed version...
511 BugDriver &BD;
515 ReduceCrashingNamedMD(BugDriver &bd,
517 : BD(bd), TestFn(testFn) {}
536 Module *M = CloneModule(BD.getProgram(), VMap).release();
570 if (TestFn(BD, M)) {
571 BD.setNewProgram(M); // It crashed, keep the trimmed version...
581 BugDriver &BD;
585 ReduceCrashingNamedMDOps(BugDriver &bd,
587 : BD(bd), TestFn(testFn) {}
618 Module *M = CloneModule(BD.getProgram(), VMap).release();
622 for (auto &NamedMD : BD.getProgram()->named_metadata()) {
638 if (TestFn(BD, M)) {
645 BD.setNewProgram(M); // It crashed, keep the trimmed version...
652 static void ReduceGlobalInitializers(BugDriver &BD,
655 if (BD.getProgram()->global_begin() != BD.getProgram()->global_end()) {
658 Module *M = CloneModule(BD.getProgram()).release();
676 if (TestFn(BD, M)) { // Still crashes?
677 BD.setNewProgram(M);
685 for (Module::global_iterator I = BD.getProgram()->global_begin(),
686 E = BD.getProgram()->global_end(); I != E; ++I)
695 ReduceCrashingGlobalVariables(BD, TestFn).reduceList(GVs, Error);
699 BD.EmitProgressBitcode(BD.getProgram(), "reduced-global-variables");
706 static void ReduceInsts(BugDriver &BD,
713 for (const Function &F : *BD.getProgram())
719 ReduceCrashingInstructions(BD, TestFn).reduceList(Insts, Error);
744 for (Module::const_iterator FI = BD.getProgram()->begin(),
745 E = BD.getProgram()->end(); FI != E; ++FI)
762 BD.deleteInstructionFromProgram(&*I, Simplification);
765 if (TestFn(BD, M.get())) {
768 BD.setNewProgram(M.release());
781 BD.EmitProgressBitcode(BD.getProgram(), "reduced-instructions");
788 static bool DebugACrash(BugDriver &BD,
794 ReduceGlobalInitializers(BD, TestFn, Error);
798 for (Function &F : *BD.getProgram())
807 ReduceCrashingFunctions(BD, TestFn).reduceList(Functions, Error);
810 BD.EmitProgressBitcode(BD.getProgram(), "reduced-function");
820 for (Function &F : *BD.getProgram())
824 ReduceCrashingBlocks(BD, TestFn).reduceList(Blocks, Error);
826 BD.EmitProgressBitcode(BD.getProgram(), "reduced-blocks");
832 ReduceInsts(BD, TestFn, Error);
840 for (auto &NamedMD : BD.getProgram()->named_metadata())
842 ReduceCrashingNamedMD(BD, TestFn).reduceList(NamedMDNames, Error);
849 for (auto &NamedMD : BD.getProgram()->named_metadata())
852 ReduceCrashingNamedMDOps(BD, TestFn).reduceList(NamedMDOps, Error);
854 BD.EmitProgressBitcode(BD.getProgram(), "reduced-named-md");
860 Module *M = CloneModule(BD.getProgram()).release();
861 M = BD.performFinalCleanups(M, true).release();
864 if (TestFn(BD, M)) {
865 BD.setNewProgram(M); // Yup, it does, keep the reduced version...
871 BD.EmitProgressBitcode(BD.getProgram(), "reduced-simplified");
876 static bool TestForOptimizerCrash(const BugDriver &BD, Module *M) {
877 return BD.runPasses(M, BD.getPassesToRun());
904 static bool TestForCodeGenCrash(const BugDriver &BD, Module *M) {
906 BD.compileProgram(M, &Error);