Esempio n. 1
0
/**
 * 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);
   }
Esempio n. 2
0
   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);
      }
Esempio n. 3
0
/**
 * 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.";
   }