Lines Matching full:merge
105 #define DEBUG_TYPE "global-merge"
109 EnableGlobalMerge("enable-global-merge", cl::Hidden,
110 cl::desc("Enable the global merge pass"),
114 GlobalMergeMaxOffset("global-merge-max-offset", cl::Hidden,
115 cl::desc("Set maximum offset for global merge pass"),
119 "global-merge-group-by-use", cl::Hidden,
120 cl::desc("Improve global merge pass to look at uses"), cl::init(true));
123 "global-merge-ignore-single-use", cl::Hidden,
124 cl::desc("Improve global merge pass to ignore globals only used alone"),
128 EnableGlobalMergeOnConst("global-merge-on-const", cl::Hidden,
129 cl::desc("Enable global merge pass on constants"),
135 EnableGlobalMergeOnExternal("global-merge-on-external", cl::Hidden,
136 cl::desc("Enable global merge pass on external linkage"));
139 GlobalMergeMinDataSize("global-merge-min-data-size",
157 /// Merge everything in \p Globals for which the corresponding bit
226 StringRef getPassName() const override { return "Merge internal globals"; } in getPassName()
249 INITIALIZE_PASS(GlobalMerge, DEBUG_TYPE, "Merge global variables", false, false)
320 // Now, look at each merge-eligible global in turn. in doMerge()
428 // We can choose to merge all globals together, but ignore globals never used in doMerge()
477 LLVM_DEBUG(dbgs() << " Trying to merge set, starts with #" in doMerge()
521 // Exit early if there is only one global to merge. in doMerge()
658 // Merge is safe for "normal" internal or external globals only in run()
662 // It's not safe to merge globals that may be preempted in run()
684 // Don't merge tagged globals, as each global should have its own unique in run()