Go to the documentation of this file.
26 assert(NumClasses == 0 &&
"grow() called after compress().");
29 EC.push_back(EC.size());
33 assert(NumClasses == 0 &&
"join() called after compress().");
54 assert(NumClasses == 0 &&
"findLeader() called after compress().");
63 for (
unsigned i = 0,
e = EC.size();
i !=
e; ++
i)
64 EC[
i] = (EC[
i] ==
i) ? NumClasses++ : EC[EC[
i]];
71 for (
unsigned i = 0,
e = EC.size();
i !=
e; ++
i)
72 if (EC[
i] < Leader.size())
73 EC[
i] = Leader[EC[
i]];
75 Leader.push_back(EC[
i] =
i);
This is an optimization pass for GlobalISel generic memory operations.
unsigned join(unsigned a, unsigned b)
Join the equivalence classes of a and b.
unsigned findLeader(unsigned a) const
findLeader - Compute the leader of a's equivalence class.
=0.0 ? 0.0 :(a > 0.0 ? 1.0 :-1.0) a
the resulting code requires compare and branches when and if the revised code is with conditional branches instead of More there is a byte word extend before each where there should be only and the condition codes are not remembered when the same two values are compared twice More LSR enhancements i8 and i32 load store addressing modes are identical int b
void compress()
compress - Compress equivalence classes by numbering them 0 .
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void grow(unsigned N)
grow - Increase capacity to hold 0 .
void uncompress()
uncompress - Change back to the uncompressed representation that allows editing.
void reserve(size_type N)