[LLVMdev] Physical register definition removed by MachineCSE
Tom Stellard
tom at stellard.net
Fri Aug 15 07:15:04 PDT 2014
On Fri, Aug 15, 2014 at 11:18:51AM +0200, Mikael Holmén wrote:
> Hi,
>
> My target has a special configuration register that many
> instructions read implicitly, configuring for example if an add
> instruction should saturate at over/underflow or not.
>
> Now, I have a problem where the MachineCSE removes a setting of this
> configuration register in a basic block, because
> MachineCSE::isPhysDefTriviallyDead can't find any uses of it in the
> basic block where it's defined.
>
> Similar to other special physical registers, e.g the stack pointer,
> this configuration register is marked as "reserved".
>
> Is there anything else I need to do for the MachineCSE to leave this
> register and not remove it just because it can't find any uses in
> the current basic block?
Have you added this register as an implicit use to the instructions
like add whose behavior depends on its value?
-Tom
>
> Best regards,
> Mikael Holmén
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list