How to track down a bad llvm optimization pass

Dan Olson via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Tue Jun 21 12:41:59 PDT 2016


On Tuesday, 21 June 2016 at 07:00:35 UTC, Joakim wrote:
> On Tuesday, 21 June 2016 at 05:51:56 UTC, Joakim wrote:
>> On Monday, 20 June 2016 at 20:15:52 UTC, Rainer Schuetze wrote:
>>>
>>>
>>> On 19.06.2016 08:58, Joakim wrote:
>>>> [...]
>>>
>>> If it fails in a specific optimization pass, it has already 
>>> passed a number of verification passes. When I posted some 
>>> bug reports, the LLVM people (who have been very helpful) 
>>> considered it an LLVM bug if an invalid IR passes the 
>>> verifier. So even if some assumptions are broken, I would 
>>> suggest to report to the LLVM bug tracker.
>>
>> OK, will do.  I think the fact that the exact same ldc 
>> frontend linked with llvm 3.7.1 doesn't have this problem, 
>> only when linked against llvm 3.8.0, indicates this most 
>> likely isn't a problem on our end.
>
> Filed: https://llvm.org/bugs/show_bug.cgi?id=28224

Hmmm.  I looked at failing code in std.conv.  I think it does a 
negative shift, which is undefined in C.  It is the opSlice() 
method.


More information about the digitalmars-d-ldc mailing list