/** * This generates IL, runs the requested optimizations, * verifies the optimized IL, compiles it, then invokes tests. * * Must be called after setMethodInfo() and setIlVerifier(). * Should be called after all requested optimizations are * added via addOptimization(). */ void TestCompiler::OptTestDriver::VerifyAndInvoke() { OptimizationStrategy strategy[_optimizations.size() + 1]; makeOptimizationStrategyArray(strategy); TR::Optimizer::setMockStrategy(strategy); RunTest(); TR::Optimizer::setMockStrategy(NULL); }
virtual void SetUp() { JitTest::SetUp(); // This is an allocated pointer because the strategy needs to // live as long as this fixture _strategy = new OptimizationStrategy[_optimizations.size() + 1]; makeOptimizationStrategyArray(_strategy); TR::Optimizer::setMockStrategy(_strategy); }
/** * Similar to VerifyAndInvoke(), however the IL is not compiled * after IL verification, and tests are not invoked. */ void TestCompiler::OptTestDriver::Verify() { OptimizationStrategy strategy[_optimizations.size() + 1]; makeOptimizationStrategyArray(strategy); TR::Optimizer::setMockStrategy(strategy); // To stop before codegen, throw an exception at the end of IL verification. TR::IlVerifier *oldVerifier = _ilVer; TR::NoCodegenVerifier noCodegenVerifier(oldVerifier); setIlVerifier(&noCodegenVerifier); compileTestMethods(); setIlVerifier(oldVerifier); TR::Optimizer::setMockStrategy(NULL); ASSERT_EQ(true, noCodegenVerifier.hasRun()) << "Did not run verifiers."; }