Update VPInstruction to use VPRecipeWithIRFlags to manage FMFs for
VPInstruction.
A follow-up patch will also use VPRecipeWithIRFlags to remove the
CanonicalIVIncrementForPartNUW and CanonicalIVIncrementNUW opcodes.
Paths
| Differential D157144
[VPlan] Replace FMF in VPInstruction with VPRecipeWithIRFlags (NFC). ClosedPublic Authored by fhahn on Aug 4 2023, 2:48 PM.
Details Summary Update VPInstruction to use VPRecipeWithIRFlags to manage FMFs for A follow-up patch will also use VPRecipeWithIRFlags to remove the
Diff Detail
Event TimelineComment Actions Thanks!. Have you ever considered to add something like getCalledFunction() when Opode == Instruction::Call to identify vscale? fhahn added a child revision: D157194: [VPlan] Model wrap flags directly, remove *NUW opcodes (NFC).Aug 5 2023, 8:46 AM Comment Actions
AFAIK vscale isn't currently modeled as VPInstruction yet, but once it does that certainly makes sense, thanks! Comment Actions
Given its importance maybe model it as a dedicated derived class of VPInstruction, e.g., VPVscaleInstruction.
fhahn marked 8 inline comments as done. Comment ActionsAddress latest comments, thanks!
fhahn removed a child revision: D157194: [VPlan] Model wrap flags directly, remove *NUW opcodes (NFC).Aug 8 2023, 1:57 AM fhahn added inline comments.
fhahn added inline comments.
fhahn marked an inline comment as done. Comment ActionsFix build error, guard isFPMathOp with ifdef as it's only used in assertions. This revision is now accepted and ready to land.Aug 8 2023, 11:06 AM This revision was landed with ongoing or failed builds.Aug 8 2023, 12:13 PM Closed by commit rG698ae660923a: [VPlan] Replace FMF in VPInstruction with VPRecipeWithIRFlags (NFC). (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes. fhahn marked an inline comment as done.
Revision Contents
Diff 547361 llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
|
Add a constructor and/or operator= from llvm::FastMathFlags?