Go to the documentation of this file.
21 #ifndef LLVM_ADT_INTEQCLASSES_H
22 #define LLVM_ADT_INTEQCLASSES_H
38 unsigned NumClasses = 0;
47 void grow(
unsigned N);
59 unsigned join(
unsigned a,
unsigned b);
77 assert(NumClasses &&
"operator[] called before compress()");
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.
IntEqClasses(unsigned N=0)
IntEqClasses - Create an equivalence class mapping for 0 .. N-1.
=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
unsigned operator[](unsigned a) const
operator[] - Return a's equivalence class number, 0 .
void clear()
clear - Clear all classes so that grow() will assign a unique class to every integer.
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 .
unsigned getNumClasses() const
getNumClasses - Return the number of equivalence classes after compress() was called.
void uncompress()
uncompress - Change back to the uncompressed representation that allows editing.