[llvm-dev] Code which should exit 1 is exiting 0

via llvm-dev llvm-dev at lists.llvm.org
Wed May 4 18:04:35 PDT 2016


DAG legalization still runs with -O0.

—escha

> On May 4, 2016, at 6:00 PM, Carlos Liam <carlos at aarzee.me> wrote:
> 
> Shouldn't that not happen when I run with -O0?
> 
>  - CL
> 
>> On May 4, 2016, at 8:56 PM, escha at apple.com <mailto:escha at apple.com> wrote:
>> 
>> I checked the debug log: this is what’s happening.
>> 
>> 1. Because f16 isn’t legal, SINT_TO_FP and FP_TO_SINT get promoted to f32.
>> 2. f32 has 24 mantissa bits, which is enough to losslessly represent i16s. So the conversion gets eliminated in FoldIntToFPToInt.
>> 
>> Part 1) here looks fairly suspicious.
>> 
>> —escha
>> 
>>> On May 4, 2016, at 5:41 PM, John Criswell via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>> 
>>> On 5/4/16 8:25 PM, Carlos Liam via llvm-dev wrote:
>>>> I have IR at https://ghostbin.com/paste/daxv5 <https://ghostbin.com/paste/daxv5> which is meant to exit 1, but it is always exiting 0.
>>>> 
>>> 
>>> 1) It would help if you pasted the relevant code into your message.  Paranoid people like me don't following links in emails.
>>> 
>>> 2) Have you ensured that your program doesn't exercise undefined behavior?  If your program has a signed overflow, an out-of-bounds error, or some other undefined behavior, the compiler may optimize it in surprising and unexpected way.
>>> 
>>> Regards,
>>> 
>>> John Criswell
>>> 
>>>> I'm using it as a template for checking if two functions @test1 and @test2 are equivalent by checking against the exhaustive possible i16 values. For this particular example it should be enough to know that for certain i16, @test1 and @test2 are *not* equal. When an inequality is found, the program should exit 1. However, it seems like it's always exiting 0. Is there something I'm doing wrong?
>>>> 
>>>>  - CL
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>>> 
>>> 
>>> -- 
>>> John Criswell
>>> Assistant Professor
>>> Department of Computer Science, University of Rochester
>>> http://www.cs.rochester.edu/u/criswell <http://www.cs.rochester.edu/u/criswell>_______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160504/58f6aefa/attachment.html>


More information about the llvm-dev mailing list