class DebugCrashes;
class ReduceMiscompilingPasses;
class ReduceMiscompilingFunctions;
-class ReduceCrashingFunctions;
-class ReduceCrashingBlocks;
class CBE;
class GCC;
}
-namespace llvm {
+namespace {
/// ReduceCrashingBlocks reducer - This works by setting the terminators of
/// all terminators except the specified basic blocks to a 'ret' instruction,
/// then running the simplify-cfg pass. This has the effect of chopping up
}
// First step: clone the module for the two halves of the program we want.
- Module *ToOptimize = CloneModule(BD.Program);
+ Module *ToOptimize = CloneModule(BD.getProgram());
// Second step: Make sure functions & globals are all external so that linkage
// between the two modules will work.
if (!EmitBytecode)
std::cout << "done.\n";
- delete BD.Program; // Delete the old "ToOptimize" module
+ delete BD.getProgram(); // Delete the old "ToOptimize" module
BD.Program = BD.ParseInputFile(BytecodeResult);
if (EmitBytecode) {
// output, then 'Funcs' are being misoptimized!
bool Broken = BD.diffProgram();
- delete BD.Program; // Delete the hacked up program
+ delete BD.Program; // Delete the hacked up program
BD.Program = OldProgram; // Restore the original
std::cout << (Broken ? " nope.\n" : " yup.\n");