Lines Matching defs:SubRange

86 void ConstantRangeList::subtract(const ConstantRange &SubRange) {
87 if (SubRange.isEmptySet() || empty())
89 assert(!SubRange.isFullSet() && "Do not support full set");
90 assert(SubRange.getLower().slt(SubRange.getUpper()));
91 assert(getBitWidth() == SubRange.getBitWidth());
93 if (Ranges.back().getUpper().sle(SubRange.getLower()))
95 if (SubRange.getUpper().sle(Ranges.front().getLower()))
104 if (SubRange.getUpper().sle(Range.getLower()) ||
105 Range.getUpper().sle(SubRange.getLower())) {
106 // "Range" and "SubRange" do not overlap.
108 // L---U : SubRange (Case1)
109 // L---U : SubRange (Case2)
111 } else if (Range.getLower().sle(SubRange.getLower()) &&
112 SubRange.getUpper().sle(Range.getUpper())) {
113 // "Range" contains "SubRange".
115 // L-U : SubRange
118 AppendRangeIfNonEmpty(Range.getLower(), SubRange.getLower());
119 AppendRangeIfNonEmpty(SubRange.getUpper(), Range.getUpper());
120 } else if (SubRange.getLower().sle(Range.getLower()) &&
121 Range.getUpper().sle(SubRange.getUpper())) {
122 // "SubRange" contains "Range".
124 // L---U : SubRange
126 } else if (Range.getLower().sge(SubRange.getLower()) &&
127 Range.getLower().sle(SubRange.getUpper())) {
128 // "Range" and "SubRange" overlap at the left.
130 // L---U : SubRange
131 AppendRangeIfNonEmpty(SubRange.getUpper(), Range.getUpper());
133 // "Range" and "SubRange" overlap at the right.
135 // L---U : SubRange
136 assert(SubRange.getLower().sge(Range.getLower()) &&
137 SubRange.getLower().sle(Range.getUpper()));
138 AppendRangeIfNonEmpty(Range.getLower(), SubRange.getLower());