[llvm-commits] Release-blocker-fix: PR13617 : LLVM+Clang emits movw instructionts with -march=armv6zk

Stepan Dyatkovskiy stpworld at narod.ru
Tue Sep 18 04:41:44 PDT 2012


ping
Stepan Dyatkovskiy wrote:
> Take #2.
>
> I relaunched the thread. This bug is marked as release blocker... and
> the patch is pretty simple and it sitting for a few weeks without review
> :-( Please find it in attachment.
>
> Some notes:
>
> The bug is fired when dag-to-dag isel meets 'add' instruction with
> second operand that is negative number less than -256. E.g.:
> add %var, -257
>
> ARM dag-to-dag instruction selector matches the pattern that emits
> (sub %var (MOVi16 Rd, 257))
>
> After fast TableGen learning, I found that it ignores instruction
> predicates for patterns (ARMPat, ARMV6Pat and so on) while generating
> MatcherTable. So it ignores restrictions defined for MOVi16 instruction
> (ARMv6t2 and higher).
>
> I also found that for several patterns this behaviour compensated in .td
> files by adding 'Requires' predicate explicitly. So, I did the same in
> this patch.
>
> Thanks!
>
> -Stepan.
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list