[PATCH] Prevent generation of deprecated IT blocks in thumbv8

Artyom Skrobov Artyom.Skrobov at arm.com
Tue Aug 20 07:43:54 PDT 2013


Thanks Tim

The way I see it, all three patches are v8-related:

The change to IfConversion.cpp has no effect as long as conditional branch instructions are predicable, as they are in v7 Thumb mode.
Therefore, there isn't much justification for the inclusion of this change on its own, nor is it possible to demonstrate with v7 test cases that the old logic for processing conditional branches in IfConverter::ScanInstructions is flawed.

The change to ARMFastISel.cpp, similarly, has no effect with the original ARMBaseInstrInfo::isPredicable; the purpose of this change is to "oppose" the change to ARMBaseInstrInfo.cpp, and to treat the Thumb instructions as "needing a predicate even though non-predicable".
This is similar to how the NEON instructions are declared non-predicable by the original ARMBaseInstrInfo::isPredicable but nevertheless treated as if predicable in ARMFastISel::AddOptionalDefs, with a corresponding comment.


-----Original Message-----
From: Tim Northover [mailto:t.p.northover at gmail.com]
Sent: 20 August 2013 11:57
To: Artyom Skrobov
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [PATCH] Prevent generation of deprecated IT blocks in thumbv8

Hi Artyom,

> The attached patch for the ARM backend implements this change in the
> predicability of Thumb instructions.

It looks like there are three patches in there.

The changes to IfConversion.cpp look like they're independent of
v8ness, and should probably be committed separately, with their own
justification. I confess I can't quite see through the logic there so
it would be useful to have examples (e.g. the tests) of just what it
changes.

Similarly the FastISel change doesn't directly refer to v8 so it'll
affect normal codegen in some way. It would be better to separate that
off.

Other than that, the changes look reasonable to me.

Cheers.

Tim.


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2548782





More information about the llvm-commits mailing list