review request Bug 16545 - COPY_STRUCT_BYVAL_I32 pseudo code generates unrecognized code
Bob Wilson
bob.wilson at apple.com
Tue Oct 15 10:47:15 PDT 2013
On Oct 14, 2013, at 11:18 AM, Manman Ren <manman.ren at gmail.com> wrote:
> Hi,
>
> The changes to ARMISelLowering.cpp look good to me.
>
> --- lib/Target/ARM/ARMConstantIslandPass.cpp (版本 187190)
> +++ lib/Target/ARM/ARMConstantIslandPass.cpp (工作副本)
> @@ -634,6 +634,7 @@
> initializeFunctionInfo(const std::vector<MachineInstr*> &CPEMIs) {
> BBInfo.clear();
> BBInfo.resize(MF->getNumBlockIDs());
> + const ARMSubtarget * Subtarget = &MF->getTarget().getSubtarget<ARMSubtarget>();
>
> // First thing, compute the size of all basic blocks, and see if the function
> // has any inline assembly in it. If so, we have to be conservative about
> @@ -757,7 +758,12 @@
> case ARM::LDRi12:
> case ARM::LDRcp:
> case ARM::t2LDRpci:
> - Bits = 12; // +-offset_12
> + if(Subtarget->hasV7Ops())
> + {
> + Bits = 12; // +-offset_12
> + } else {
> + Bits = 8; // +-offset_8
> + }
>
> Please simplify above by removing the parenthesis, or using "? 12 : 8".
> I am not really familiar with the const island pass, so I cc'ed Bob for him to review it.
That change does not look right to me.
Those instructions all have 12-bit offsets.
More information about the llvm-commits
mailing list