[llvm] r240394 - Revert r240302 ("Bring r240130 back.").

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Jun 23 19:18:10 PDT 2015

> On 2015 Jun 23, at 18:52, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> On 23 June 2015 at 16:49, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
>> Thanks!
>> With asserts this reduces to
>> define void @fj()  {
>>  call void asm "bsr $0,%eax", "o"(i32 1)
>>  ret void
>> }
>> crashing llc.
> Gosh, that is horrible.
> The way inline asm is implemented is
> * We kept most of the old (pre-MC) assembly printer around.
> * We use it to print/expand inline asm to a string.
> * We parse that string.
> So anything that can show up in inline asm needs a name by which we
> can find it again.
> I think the way to fix this is to directly transition from the inline
> asm pattern "bsr $0,%eax" to a MCInst with an operand pointing to
> whatever we created for $0. That will let us nuke the old printer and
> save memory by not creating names just in case they are used in inline
> asm.
> That, unfortunately, is quite a bit more work than I can do at the moment.

That really is horrible.  Your suggested direction SGTM; I filed PR23933.

More information about the llvm-commits mailing list