[PATCH] D79537: Add NoMerge MIFlag to avoid MIR branch folding
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 13 14:42:42 PDT 2020
arsenm added inline comments.
================
Comment at: llvm/include/llvm/CodeGen/MachineInstr.h:109
// floatint-point exceptions.
+ NoMerge = 1 << 15, // Instruction should not be merged
};
----------------
zequanwu wrote:
> rnk wrote:
> > arsenm wrote:
> > > It's not obvious to me what this means. These are also supposed to be droppable optimization flags, but it seems like you're using this for something semantically required?
> > I don't think `BundledPred` or `FrameSetup` are droppable, IMO they are semantically significant.
> >
> > The only alternative I see to this would be to encode this information in the MCInstrDesc, which would require mirroring the entire family of X86 CALL instructions, of which there are many.
> This `NoMerge` flag is used to disable branch-fold optimization when present. What do you mean something semantically required?
I forgot those were also here. Maybe this should be sorted up to the other mandatory flags. I'm pretty sure FrameSetup only changes debug info, so I guess that's not exactly mandatory?
I would still like a better comment here. This one just restates the name of the flag and doesn't tell me what it means by merge
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D79537/new/
https://reviews.llvm.org/D79537
More information about the llvm-commits
mailing list