Re: Raft of optimiser changes

2014-08-30 Thread Sergei Trofimovich
On Thu, 28 Aug 2014 11:16:03 +
Simon Peyton Jones simo...@microsoft.com wrote:

 I've just pushed a bunch of Core-to-Core optimisation changes that have been 
 sitting in my tree for ages.  The aggregate effect on nofib is very modest, 
 but they are mostly aimed at corner cases, and consolidation.
 
 Program   SizeAllocs   Runtime   Elapsed  TotalMem
 
 Min  -7.2% -3.1% -7.8% -7.8%-14.8%
 
 Max  +5.6% +1.3%+20.0%+19.7%+50.0%
 
 Geometric Mean  -0.3% -0.1% +1.7% +1.7% +0.2%
 The runtime increases are spurious - I checked.
 A couple of perf/compiler tests (i.e. GHC's own performance) improve 
 significantly, which is a good sign.
 I have a few more to come but wanted to get this lot out of my hair.

Hello Simon!

The compiler improvements look great!

Although running 'fulltest' one test caught core lint error:
typecheck/should_compile  T7891 [exit code non-0] 
 (hpc,optasm,profasm,optllvm)

It can be reran as:
$ make fulltest THREADS=12 TEST=T7891

The result of optasm run:

= T7891(optasm) 3365 of 4096 [0, 0, 0] 
cd ./typecheck/should_compile  
'/home/slyfox/dev/git/ghc-validate/inplace/bin/ghc-stage2' -fforce-recomp 
-dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts 
-fno-ghci-history -c T7891.hs -O -fasm  -fno-warn-incomplete-patterns 
T7891.comp.stderr 21
Compile failed (status 256) errors were:
*** Core Lint errors : in result of Simplifier ***
no location info: Warning:
In the type ‘a_12 - t_aiE - t_aiE’
@ a_12 is out of scope

(attached it's complete output)

Thank you!


-- 

  Sergei
make -C testsuite/tests CLEANUP=1 OUTPUT_SUMMARY=../../testsuite_summary.txt
make[1]: Entering directory `/home/slyfox/dev/git/ghc-validate/testsuite/tests'
python2 ../driver/runtests.py  -e ghc_compiler_always_flags='-fforce-recomp 
-dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts ' -e 
ghc_debugged=False -e ghc_with_native_codegen=1 -e ghc_with_vanilla=1 -e 
ghc_with_dynamic=1 -e ghc_with_profiling=1 -e ghc_with_threaded_rts=1 -e 
ghc_with_dynamic_rts=1 -e ghc_with_interpreter=1 -e ghc_unregisterised=0 -e 
ghc_dynamic_by_default=False -e ghc_dynamic=True -e ghc_with_smp=1 -e 
ghc_with_llvm=1 -e windows=False -e darwin=False -e in_tree_compiler=True 
--threads=12 -e clean_only=False --rootdir=. --config=../config/ghc -e 
'config.confdir=../config' -e 
'config.compiler=/home/slyfox/dev/git/ghc-validate/inplace/bin/ghc-stage2' -e 
'config.ghc_pkg=/home/slyfox/dev/git/ghc-validate/inplace/bin/ghc-pkg' -e 
'config.hp2ps=/home/slyfox/dev/git/ghc-validate/inplace/bin/hp2ps' -e 
'config.hpc=/home/slyfox/dev/git/ghc-validate/inplace/bin/hpc' -e 
'config.gs=gs' -e 'config.platform=x86_64-unknown-linux' -e 
'config.os=linux' -e 'config.arch=x86_64' -e 'config.wordsize=64' -e 
'default_testopts.cleanup=1' -e 'config.timeout=int() or config.timeout' -e 
'config.timeout_prog=../timeout/install-inplace/bin/timeout' -e 
'config.exeext=' -e 
'config.top=/home/slyfox/dev/git/ghc-validate/testsuite' --output-summary 
../../testsuite_summary.txt   --rootdir=../../libraries/array/tests  
--rootdir=../../libraries/base/tests  --rootdir=../../libraries/binary/tests  
--rootdir=../../libraries/bytestring/tests  
--rootdir=../../libraries/containers/tests  
--rootdir=../../libraries/directory/tests  
--rootdir=../../libraries/filepath/tests  
--rootdir=../../libraries/ghc-prim/tests  
--rootdir=../../libraries/haskeline/tests  --rootdir=../../libraries/hpc/tests  
--rootdir=../../libraries/old-time/tests  
--rootdir=../../libraries/parallel/tests  
--rootdir=../../libraries/pretty/tests  --rootdir=../../libraries/process/tests 
 --rootdir=../../libraries/stm/tests  
--rootdir=../../libraries/template-haskell/tests  
--rootdir=../../libraries/unix/tests  
--rootdir=../../libraries/containers/tests-ghc \
 --only=T7891 \
 \
 --way=optasm \
 \
 \
 \

Error: /undefined in This
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   
--nostringval--   2   %stopped_push   --nostringval--   --nostringval--   
--nostringval--   false   1   %stopped_push   1900   1   3   %oparray_pop   
1899   1   3   %oparray_pop   1883   1   3   %oparray_pop   1771   1   3   
%oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   
--nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:1172/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Current file position is 5
gs -dNODISPLAY -dBATCH -dQUIET -dNOPAUSE ../config/good.ps
gs -dNODISPLAY -dBATCH -dQUIET -dNOPAUSE ../config/bad.ps
GhostScript available for hp2ps tests
Timeout is 300
Found 269 .T files...
Beginning test run at Sat Aug 30 13:36:37 2014 FET
 Scanning ./annotations/should_compile/all.T
 Scanning 

Raft of optimiser changes

2014-08-28 Thread Simon Peyton Jones
I've just pushed a bunch of Core-to-Core optimisation changes that have been 
sitting in my tree for ages.  The aggregate effect on nofib is very modest, but 
they are mostly aimed at corner cases, and consolidation.

Program   SizeAllocs   Runtime   Elapsed  TotalMem

Min  -7.2% -3.1% -7.8% -7.8%-14.8%

Max  +5.6% +1.3%+20.0%+19.7%+50.0%

Geometric Mean  -0.3% -0.1% +1.7% +1.7% +0.2%
The runtime increases are spurious - I checked.
A couple of perf/compiler tests (i.e. GHC's own performance) improve 
significantly, which is a good sign.
I have a few more to come but wanted to get this lot out of my hair.
Simon



a1a400ed * Testsuite wibbles

39ccdf91 * White space only

6c6b001e * Remove dead lookup_dfun_id (merge-o)

a0b2897e * Simple refactor of the case-of-case transform

bb877266 * Performance changes

082e41b4 * Testsuite wibbles

1122857e * Run float-inwards immediately before the strictness analyser.

86a2ebf8 * Comments only

6d48ce29 * Make tidyProgram discard speculative specialisation rules

fa582cc4 * Fix an egregious bug in the NonRec case of bindFreeVars

b9e49d3e * Add -fspecialise-aggressively

dce70957 * Compiler performance increases -- yay!

a3e207f6 * More SPEC rules fire

baa3c9a3 * Wibbles to ...plus N others error message about instances in scope

99178c1f * Specialise monad functions, and make them INLINEABLE

2ef997b8 * Slightly improve fusion rules for 'take'

949ad67e * Don't float out (classop dict e1 e2)

34363330 * Move the Enum Word instance into GHC.Enum

4c03791f * Specialise Eq, Ord, Read, Show at Int, Char, String

9cf5906b * Make worker/wrapper work on INLINEABLE things

8f099374 * Make maybeUnfoldingTemplate respond to DFunUnfoldings

3af1adf9 * Kill unused setUnfoldingTemplate

6e0f6ede * Refactor unfoldings

e9cd1d5e * Less voluminous output when printing continuations

___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs