Lines Matching refs:BD

47   BugDriver &BD;  member in __anon0fc5bc690111::ReduceMiscompilingPasses
50 ReduceMiscompilingPasses(BugDriver &bd) : BD(bd) {} in ReduceMiscompilingPasses()
69 if (BD.runPasses(BD.getProgram(), Suffix, BitcodeResult, false /*delete*/, in doTest()
73 BD.setPassesToRun(Suffix); in doTest()
74 BD.EmitProgressBitcode(BD.getProgram(), "pass-error", false); in doTest()
76 if (Error E = BD.debugOptimizerCrash()) in doTest()
82 Expected<bool> Diff = BD.diffProgram(BD.getProgram(), BitcodeResult, "", in doTest()
89 errs() << BD.getToolName() << ": I'm confused: the test fails when " in doTest()
111 if (BD.runPasses(BD.getProgram(), Prefix, BitcodeResult, false /*delete*/, in doTest()
115 BD.setPassesToRun(Prefix); in doTest()
116 BD.EmitProgressBitcode(BD.getProgram(), "pass-error", false); in doTest()
118 if (Error E = BD.debugOptimizerCrash()) in doTest()
124 Diff = BD.diffProgram(BD.getProgram(), BitcodeResult, "", false); in doTest()
138 parseInputFile(BitcodeResult, BD.getContext()); in doTest()
140 errs() << BD.getToolName() << ": Error reading bitcode file '" in doTest()
155 BD.swapProgramIn(std::move(PrefixOutput)); in doTest()
156 if (BD.runPasses(BD.getProgram(), Suffix, BitcodeResult, false /*delete*/, in doTest()
160 BD.setPassesToRun(Suffix); in doTest()
161 BD.EmitProgressBitcode(BD.getProgram(), "pass-error", false); in doTest()
163 if (Error E = BD.debugOptimizerCrash()) in doTest()
169 Diff = BD.diffProgram(BD.getProgram(), BitcodeResult, "", in doTest()
181 BD.setNewProgram(std::move(OriginalInput)); in doTest()
187 BugDriver &BD; member in __anon0fc5bc690211::ReduceMiscompilingFunctions
196 : BD(bd), TestFn(F) {} in ReduceMiscompilingFunctions()
227 static Expected<std::unique_ptr<Module>> testMergedProgram(const BugDriver &BD, in testMergedProgram() argument
238 Expected<bool> Diff = BD.diffProgram(*Merged, "", "", false); in testMergedProgram()
255 << (BD.getPassesToRun().size() == 1 ? "" : "es") << ":"; in TestFuncs()
267 std::unique_ptr<Module> Clone = CloneModule(BD.getProgram(), VMap); in TestFuncs()
268 std::unique_ptr<Module> Orig = BD.swapProgramIn(std::move(Clone)); in TestFuncs()
278 std::unique_ptr<Module> ToNotOptimize = CloneModule(BD.getProgram(), VMap); in TestFuncs()
283 TestFn(BD, std::move(ToOptimize), std::move(ToNotOptimize)); in TestFuncs()
285 BD.setNewProgram(std::move(Orig)); in TestFuncs()
306 ExtractLoops(BugDriver &BD, in ExtractLoops() argument
316 std::unique_ptr<Module> ToNotOptimize = CloneModule(BD.getProgram(), VMap); in ExtractLoops()
320 BD.extractLoop(ToOptimize.get()); in ExtractLoops()
333 AbstractInterpreter *AI = BD.switchToSafeInterpreter(); in ExtractLoops()
336 BD, *ToOptimizeLoopExtracted, *ToNotOptimize, Failure); in ExtractLoops()
343 std::unique_ptr<Module> Old = BD.swapProgramIn(std::move(*New)); in ExtractLoops()
348 BD.switchToInterpreter(AI); in ExtractLoops()
355 BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-tno.bc", in ExtractLoops()
357 BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-to.bc", in ExtractLoops()
359 BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-to-le.bc", in ExtractLoops()
366 BD.switchToInterpreter(AI); in ExtractLoops()
377 Expected<bool> Result = TestFn(BD, std::move(ToOptimizeLoopExtracted), in ExtractLoops()
408 BD.setNewProgram(std::move(ToNotOptimize)); in ExtractLoops()
440 BD.setNewProgram(std::move(ToNotOptimize)); in ExtractLoops()
447 BugDriver &BD; member in __anon0fc5bc690311::ReduceMiscompiledBlocks
458 : BD(bd), TestFn(F), FunctionsBeingTested(Fns) {} in ReduceMiscompiledBlocks()
504 std::unique_ptr<Module> Clone = CloneModule(BD.getProgram(), VMap); in TestFuncs()
505 std::unique_ptr<Module> Orig = BD.swapProgramIn(std::move(Clone)); in TestFuncs()
518 std::unique_ptr<Module> ToNotOptimize = CloneModule(BD.getProgram(), VMap); in TestFuncs()
525 BD.extractMappedBlocksFromModule(BBsOnClone, ToOptimize.get())) { in TestFuncs()
526 Expected<bool> Ret = TestFn(BD, std::move(New), std::move(ToNotOptimize)); in TestFuncs()
527 BD.setNewProgram(std::move(Orig)); in TestFuncs()
530 BD.setNewProgram(std::move(Orig)); in TestFuncs()
538 ExtractBlocks(BugDriver &BD, in ExtractBlocks() argument
556 Expected<bool> Ret = ReduceMiscompiledBlocks(BD, TestFn, MiscompiledFunctions) in ExtractBlocks()
564 ReduceMiscompiledBlocks(BD, TestFn, MiscompiledFunctions) in ExtractBlocks()
573 std::unique_ptr<Module> ProgClone = CloneModule(BD.getProgram(), VMap); in ExtractBlocks()
577 BD.extractMappedBlocksFromModule(Blocks, ToExtract.get()); in ExtractBlocks()
607 BD.setNewProgram(std::move(ProgClone)); in ExtractBlocks()
616 BugDriver &BD, in DebugAMiscompilation() argument
624 Module &Prog = BD.getProgram(); in DebugAMiscompilation()
631 Expected<bool> Ret = ReduceMiscompilingFunctions(BD, TestFn) in DebugAMiscompilation()
648 Expected<bool> Ret = ExtractLoops(BD, TestFn, MiscompiledFunctions); in DebugAMiscompilation()
654 DisambiguateGlobalSymbols(BD.getProgram()); in DebugAMiscompilation()
658 Ret = ReduceMiscompilingFunctions(BD, TestFn) in DebugAMiscompilation()
672 Expected<bool> Ret = ExtractBlocks(BD, TestFn, MiscompiledFunctions); in DebugAMiscompilation()
678 DisambiguateGlobalSymbols(BD.getProgram()); in DebugAMiscompilation()
681 Ret = ReduceMiscompilingFunctions(BD, TestFn) in DebugAMiscompilation()
701 static Expected<bool> TestOptimizer(BugDriver &BD, std::unique_ptr<Module> Test, in TestOptimizer() argument
707 BD.runPassesOn(Test.get(), BD.getPassesToRun()); in TestOptimizer()
711 BD.EmitProgressBitcode(*Test, "pass-error", false); in TestOptimizer()
712 BD.setNewProgram(std::move(Test)); in TestOptimizer()
713 if (Error E = BD.debugOptimizerCrash()) in TestOptimizer()
721 auto Result = testMergedProgram(BD, *Optimized, *Safe, Broken); in TestOptimizer()
727 BD.setNewProgram(std::move(New)); in TestOptimizer()
782 CleanupAndPrepareModules(BugDriver &BD, std::unique_ptr<Module> Test, in CleanupAndPrepareModules() argument
785 Test = BD.performFinalCleanups(std::move(Test)); in CleanupAndPrepareModules()
788 if (!BD.isExecutingJIT()) in CleanupAndPrepareModules()
945 static Expected<bool> TestCodeGenerator(BugDriver &BD, in TestCodeGenerator() argument
948 Test = CleanupAndPrepareModules(BD, std::move(Test), Safe.get()); in TestCodeGenerator()
955 errs() << BD.getToolName() in TestCodeGenerator()
959 if (BD.writeProgramToFile(std::string(TestModuleBC), TestModuleFD, *Test)) { in TestCodeGenerator()
973 errs() << BD.getToolName() in TestCodeGenerator()
978 if (BD.writeProgramToFile(std::string(SafeModuleBC), SafeModuleFD, *Safe)) { in TestCodeGenerator()
986 BD.compileSharedObject(std::string(SafeModuleBC)); in TestCodeGenerator()
994 Expected<bool> Result = BD.diffProgram( in TestCodeGenerator()
995 BD.getProgram(), std::string(TestModuleBC), *SharedObject, false); in TestCodeGenerator()