Hi Rob, I think it's about disabling reusing variable space and not about
expression reduction.

On Fri 18 Aug 2023, 9:48 AM Rob CJ, <[email protected]> wrote:

> Hi Andreas
>
> Strange, I will do some testing this weekend.
>
> Thanks for the update.
>
> Met vriendelijke groet,
> Rob Jansen
> ------------------------------
> *From:* '[email protected]' via jallib <[email protected]>
> *Sent:* Friday, August 18, 2023 8:33:06 AM
> *To:* jallib <[email protected]>
> *Subject:* Re: [jallib] IF statement fails
>
> Hi Rob,
>
> I tried that. As a result the code size increased (+200 byte), but the
> program doesn't work any more, the output on my display stopped working, so
> it's hard to further debug this.
> So it's not clear if this helps or not because then other problems come
> into.
>
> Andreas
>
> On Thursday, August 17, 2023 at 10:29:51 PM UTC+2 Rob CJ wrote:
>
> Hi Andreas,
>
> It might be a optimization issues.
>
> Can you add the following to your program and test if the problem is gone?
>
>   pragma opt expr_reduce no
>
> It will disable code optimization.
>
> Thanks.
>
> Kind regards,
>
> Rob
>
> ------------------------------
> *Van:* '[email protected]' via jallib <[email protected]>
> *Verzonden:* donderdag 17 augustus 2023 21:42
>
> *Aan:* jallib <[email protected]>
> *Onderwerp:* Re: [jallib] IF statement fails
> Hi Rob,
> thanks that you are digging into this problem and maybe found the issue
> already.
> I'm a heavy Jal User I would call myself, but this is the first issue I
> found over the last years :-)
>
> On Thursday, August 17, 2023 at 9:31:13 PM UTC+2 Rob CJ wrote:
>
> Hi Andreas,
>
> I had a quick look at the generated assemble code for a PIC16.
>
> In your first code example the code is (I changed 3 times i into i, j and
> k so I could compile it):
>
>  ;   10 i=test1()
>                                movlw    0
>                                movwf    v_i
> ;   11 if i>0 & i<13 then
>                                movf     v_i,w
>                                bsf      v__bitbucket, 0 ; _btemp1
>                                btfsc    v__status, v__z
>
> In your last code example where you removed the function the code is:
>
>                               clrf     v_k
> ;   35 if k>0 & k<13 then
>                                movf     v_k,w
>                                bsf      v__bitbucket, 6 ; _btemp7
>                                btfsc    v__status, v__z
>
> If I am right - and I hope I am not - the first piece of code does not
> work because the Z flag (v__z) of the status register (v__status) is never
> affected by any of these instructions. In the last code example the clrf
> instruction sets the Z flag.
>
> In other words, moving the return value of 0 to v_i is not the same as
> clearing the value of v_k. So it might be a compiler bug. I wonder why it
> has not been discovered before.
>
> Still need to see if my draft conclusion is correct.
>
> Kind regards,
>
> Rob
>
>
>
> ------------------------------
> *Van:* '[email protected]' via jallib <[email protected]>
> *Verzonden:* donderdag 17 augustus 2023 21:07
> *Aan:* jallib <[email protected]>
> *Onderwerp:* Re: [jallib] IF statement fails
>
> Hello Rob,
> PIC is a 18f26K83
> compiler called with: ../jalv25r7/compiler/jalv2-x86-64 -no-variable-reuse
> no other specific setting
> Thanks,
> Andreas
>
> On Thursday, August 17, 2023 at 9:00:33 PM UTC+2 Rob CJ wrote:
>
> Hi,
>
> For which PIC did you compile this? 12, 16, 18?
>
> Did you use any compiler optimizations?
>
> Thanks.
>
> Kind regards,
>
> Rob
>
> ------------------------------
> *Van:* '[email protected]' via jallib <[email protected]>
> *Verzonden:* woensdag 16 augustus 2023 22:18
> *Aan:* jallib <[email protected]>
> *Onderwerp:* [jallib] IF statement fails
>
> Hello everyone,
>
> I found this code is not working (using jal jalv25r7, but also older
> versions). Can anyone pls verify:
>
>
> *var byte i *
>
>
> *function test() return byte is return 0 end function*
>
> *i=test() *
> *if i>0 & i<13 then*
>
> *  -- goes here but is wrong *
> *else*
> * ..*
> *end if*
>
> but this code works:
>
> *var byte i *
>
>
> *function test() return byte is return 0 end function*
> *i=test()*
> *if i<13 & i>0 then*
>
> *  .. *
> *else*
>
> *   -- goes here and OK *
> *end if*
>
> if you remove the function, it works, too:
>
> *var byte i *
> *i=0*
> *if i>0 & i<13 then*
>
> *  .. *
> *else*
>  *  -- goes here and OK*
> *end if*
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com
> <https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com
> <https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/f2b66222-389b-4f41-8705-41e46aad4528n%40googlegroups.com
> <https://groups.google.com/d/msgid/jallib/f2b66222-389b-4f41-8705-41e46aad4528n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/c174132e-28a7-4383-9c2d-335a2b025082n%40googlegroups.com
> <https://groups.google.com/d/msgid/jallib/c174132e-28a7-4383-9c2d-335a2b025082n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/GVXP195MB16376699E4BB8A93181105D7E61BA%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM
> <https://groups.google.com/d/msgid/jallib/GVXP195MB16376699E4BB8A93181105D7E61BA%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/CAM%2Bj4qv89YqwaL7wK940%2BC2z34uH8h6O%3D6neQgXtj7iipOLD4Q%40mail.gmail.com.

Reply via email to