OK, so, I'm a bit confused.

I have this template:
    
    
    template initTopContextWith(pairs:seq[(int,Value)]) =
        shallowCopy(Stack[^1],pairs)
    
    
    Run

which I'm calling/using from another _proc_.

When I use the template, the produced code is:
    
    
    //    shallowCopy(Stack[^1],pairs)
    //    shallowCopy(Stack[^1],pairs)
                    T22_ = (tySequence__27px9cXpFaJ4yUn1cSZAKaw**)0;
                    T22_ = 
X5BX5D___q5FAoaedQCwl53m2ytrbgQsystem(Stack__WH1ut3OkOocLDQJpFMZt3w->data, 
(Stack__WH1ut3OkOocLDQJpFMZt3w ? Stack__WH1ut3OkOocLDQJpFMZt3w->Sup.len : 0), 
((NI) 1));
    //        initTopContextWith(args)
                    unsureAsgnRef((void**) (&(*T22_)), args);
    
    
    Run

But when I directly include this one line of code in the calling proc, this is 
what I'm getting:
    
    
    //        shallowCopy(Stack[^1],args)
                    
X5BX5Deq___sGWc2llByIT4Ipi0sFgxegsystem(Stack__WH1ut3OkOocLDQJpFMZt3w->data, 
(Stack__WH1ut3OkOocLDQJpFMZt3w ? Stack__WH1ut3OkOocLDQJpFMZt3w->Sup.len : 0), 
((NI) 1), args);
    
    
    
    Run

What is even move weird is that - in the second case - whatever this change in 
the code means, it slows down my program by an average 20%.

Could you please shed... some light into the matter?

Reply via email to