CurryInfo: call-analysis-3.2.0 / Analysis.bench

definition: Info
 
bench :: Int -> String -> IO ()
bench k file = do
  putStrLn (take 70 (repeat '='))
  rules <- readRules (prog2DirFile file)
  let absdom = depthDom k
      maincalls = [abstractCall absdom (getMainCall rules)]
  printProgram absdom rules maincalls
  putStrLn $ "\nTotal number of rules: " ++ show (length rules)
  putStrLn "\nRunning simple call analysis..."
  semsimple <- runFixpoint absdom insertSemEq
                           rules maincalls False eqSemInt
  putStrLn (showSemInt absdom semsimple)
  putStrLn "\nRunning call analysis with ordered insertion..."
  semord <- runFixpoint absdom (updateSemEq
                                  (lessSpecificEqCallPattern lessDSpecific))
                        rules maincalls False eqSemInt
  putStrLn (showSemInt absdom semord)
  putStrLn "\nRunning call analysis with working lists..."
  semwl <- runFixpointWL absdom (lessSpecificEqCallPattern lessDSpecific)                                 rules maincalls False >>=
           return . sort
  if semord==semwl
    then return ()
    else putStrLn (showSemInt absdom semwl)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
benchmark different interpretation methods:
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_) |-> _}
name: Info
 bench
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Prelude.Int -> String -> Prelude.IO ()
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term