Go to the documentation of this file.
24 #ifndef LLVM_TRANSFORMS_VECTORIZE_VPLAN_VPLANHCFGBUILDER_H
25 #define LLVM_TRANSFORMS_VECTORIZE_VPLAN_VPLANHCFGBUILDER_H
66 : TheLoop(Lp), LI(LI), Plan(
P) {}
73 #endif // LLVM_TRANSFORMS_VECTORIZE_VPLAN_VPLANHCFGBUILDER_H
This is an optimization pass for GlobalISel generic memory operations.
VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph.
Represents a single loop in the control flow graph.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
void buildHierarchicalCFG()
Build H-CFG for TheLoop and update Plan accordingly.
Struct with utility functions that can be used to check the consistency and invariants of a VPlan,...
Main class to build the VPlan H-CFG for an incoming IR.
Core dominator tree base class.
VPlanHCFGBuilder(Loop *Lp, LoopInfo *LI, VPlan &P)
VPlan models a candidate for vectorization, encoding various decisions take to produce efficient outp...