Andreas Klebinger pushed to branch wip/andreask/9.10.4-batch1 at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • rts/Interpreter.c
    ... ... @@ -193,10 +193,7 @@ tag functions as tag inference currently doesn't rely on those being properly ta
    193 193
        In practice we're unlikely to have interpreted frames that low on the stack.
    
    194 194
      */
    
    195 195
     #define IS_UNDERFLOW_FRAME(info) \
    
    196
    -    ((info) == &stg_stack_underflow_frame_d_info ||   \
    
    197
    -     (info) == &stg_stack_underflow_frame_v16_info || \
    
    198
    -     (info) == &stg_stack_underflow_frame_v32_info || \
    
    199
    -     (info) == &stg_stack_underflow_frame_v64_info)
    
    196
    +    ((info) == &stg_stack_underflow_frame_info)
    
    200 197
     
    
    201 198
     #define W64_TO_WDS(n) ((n * sizeof(StgWord64) / sizeof(StgWord)))
    
    202 199
     
    
    ... ... @@ -436,8 +433,6 @@ slow_spw(void *Sp, StgStack *cur_stack, StgWord offset_words){
    436 433
         if( IS_UNDERFLOW_FRAME(frame->info) )
    
    437 434
         {
    
    438 435
     
    
    439
    -      INTERP_TICK(it_underflow_lookups);
    
    440
    -
    
    441 436
           new_stack = (StgStack*)frame->next_chunk;
    
    442 437
     
    
    443 438
           // How many words were on the stack
    
    ... ... @@ -450,7 +445,7 @@ slow_spw(void *Sp, StgStack *cur_stack, StgWord offset_words){
    450 445
         }
    
    451 446
         // 2b. Access the element if there is no underflow frame, it must be right
    
    452 447
         // at the top of the stack.
    
    453
    -    else if(Sp_plusW(offset_words) < (StgPtr)(cur_stack->stack + cur_stack->stack_size)) {
    
    448
    +    else if((StgPtr) Sp_plusW(offset_words) < (StgPtr)(cur_stack->stack + cur_stack->stack_size)) {
    
    454 449
             // Still inside the stack chunk
    
    455 450
             return Sp_plusW(offset_words);
    
    456 451
         } else {
    
    ... ... @@ -572,7 +567,6 @@ eval:
    572 567
     
    
    573 568
     eval_obj:
    
    574 569
         obj = UNTAG_CLOSURE(tagged_obj);
    
    575
    -    INTERP_TICK(it_total_evals);
    
    576 570
     
    
    577 571
         IF_DEBUG(interpreter,
    
    578 572
                  debugBelch(
    
    ... ... @@ -1811,7 +1805,7 @@ run_BCO:
    1811 1805
                         threadStackUnderflow(cap, cap->r.rCurrentTSO);
    
    1812 1806
                         LOAD_STACK_POINTERS;
    
    1813 1807
                         by -= sp_to_uf;
    
    1814
    -                } else if (Sp_plusW(by) < (StgPtr)(stk->stack + stk->stack_size)) {
    
    1808
    +                } else if ((StgPtr) Sp_plusW(by) < (StgPtr)(stk->stack + stk->stack_size)) {
    
    1815 1809
                         // we're within the first stack chunk, this chunk has
    
    1816 1810
                         // no underflow frame
    
    1817 1811
                         break;
    
    ... ... @@ -1937,7 +1931,7 @@ run_BCO:
    1937 1931
                                                    itbl->layout.payload.nptrs );
    
    1938 1932
                 StgClosure* con = (StgClosure*)allocate_NONUPD(cap,request);
    
    1939 1933
                 ASSERT( itbl->layout.payload.ptrs + itbl->layout.payload.nptrs > 0);
    
    1940
    -            for (W_ i = 0; i < n_words; i++) {
    
    1934
    +            for (i = 0; i < n_words; i++) {
    
    1941 1935
                     con->payload[i] = (StgClosure*)SpW(i);
    
    1942 1936
                 }
    
    1943 1937
                 Sp_addW(n_words);
    

  • testsuite/tests/bytecode/T27001.stdout
    1
    -(0.15 secs,)
    
    2
    -it :: ()
    
    3 1
     100000.0
    4
    -(0.09 secs, 51,566,104 bytes)