48 Программные средства и математические основы информатикичтобы выяснить, что вершины не эквивалентны, так как составные вершиныочень отличаются друг от друга.Некоторые вершины служат для представления коммутативных операций(например сложения или умножения). Однако наш алгоритм не воспринимает,например, 5*G и G*5 как одинаковые выражения. Также настоящийалгоритм не пытается изменить порядок действий для нахождения одинаковыхвыражений: 5*(G*H) всегда отлично от (5*G)*H.5. ВЫНОС ИНВАРИАНТОВ ЦИКЛАОпределение выражений, являющихся инвариантом для цикла, и выносих за цикл, исключают многократное выполнение одного и того же вычисленияи являются еще одним традиционным оптимизирующим преобразованием,присущим почти всем оптимизирующим компиляторам. Инвариантомцикла называется выражение, которое вычисляется в одно и то же значениена каждой итерации цикла. Такие выражения могут создаваться программистомс целью повышения читаемости кода или появляться вследствиевыполнения каких-либо еще преобразований. Мы сейчас определим,что значит, что IF1-вершина внутри подграфа одной из составных вершинцикла является инвариантом.Пусть X — вершина внутри подграфа G, содержащегося в графе L цикла.Будем говорить, что X является инвариантом цикла в L, если каждый еевходящий порт принимает значение:1) либо от константной вершины,2) либо с порта входных значений L,3) либо от вершины, являющейся инвариантом цикла.Предположим, что вершина X является инвариантом цикла или не зависитот каких-либо других вершин, т.е. все ее входящие порты удовлетворяютусловиям (1) и (2). В этом случае мы можем вынести Х из подграфа Gцикла L, последовательно выполняя следующие действия.1. Вынести X вместе со своими входными дугами из графа G.2. Поместить вершину X в граф, содержащий L непосредственно передL в порядке зависимости по данным. Присоединим каждую входную дугувершины X к соответствующему входному порту L и соединяем выходнойдугой исходящие порты с создаваемыми входными портами на L.3. Соединить вершины, получавшие значения из X, с созданными портамина G.
Дортман П. А. Подходы к оптимизации программ в системе SFP 494. Удалить все входы L, которые использовались исключительно вершинойX.Понятно, что если мы будем обходить вершины в порядке, сохраняющемзависимость по данным, то проверка условия (3) будет излишней, достаточнопроверять только первые два условия. Так как в алгоритме исключенияобщих подвыражений также использовался обход в порядке, сохраняющемзависимость по данным, то совместное применение этих двух оптимизацийможно естественным образом алгоритмизировать. При этомнаиболее удачной нам представляется стратегия, при которой вынос инвариантовцикла выполняется для всех циклов графа, а затем происходит поискобщих подвыражений. Такая стратегия позволяет не упустить шанссклеить только что вынесенные из циклов вершины с другими вершинами вграфе.6. ЗАКЛЮЧЕНИЕСемантика IF1-графов позволяет проводить оптимизирующие преобразованияпрограмм как эффективные преобразования IF1- графов. И мы продемонстрировалиэто на примере трех традиционных преобразований.СПИСОК ЛИТЕРАТУРЫ1. Глуханков М.П., Дортман П.А., Павлов А.А., Стасенко А.П. Транслирующиекомпоненты системы функционального программирования SFP // Современныепроблемы конструирования программ. — Новосибирск, 2002. — С. 69–872. Cann D. Retire FORTRAN? A debate rekindled // CACM. —1992. — Vol. 35, N 8.— P. 81–89.3. Касьянов В.Н., Бирюкова Ю.В., Евстигнеев В.А. Функциональный язык Sisal 3.0// Поддержка супервычислений и Интернет-ориентированные технологии. —Новосибирск, 2001. — С. 54–67.4. Густокашина Ю.В., Евстигнеев В.А. IF1 — промежуточное представление Sisalпрограмм// Проблемы конструирования эффективных и надежных программ. —Новосибирск, 1995. — С. 70–78.
- Page 1 and 2: ПРОГРАММНЫЕСРЕДСТ
- Page 3 and 4: Российская академи
- Page 6 and 7: This volume is the eleventh one in
- Page 8 and 9: 6 Программные средс
- Page 10 and 11: 8 Программные средс
- Page 12 and 13: 10 Программные сред
- Page 14 and 15: 12 Программные сред
- Page 16: 14 Программные сред
- Page 22 and 23: 20 Программные сред
- Page 24 and 25: 22 Программные сред
- Page 26 and 27: 24 Программные сред
- Page 28 and 29: 26 Программные сред
- Page 30 and 31: 28 Программные сред
- Page 32 and 33: 30 Программные сред
- Page 34 and 35: 32 Программные сред
- Page 36 and 37: 34 Программные сред
- Page 38 and 39: 36 Программные сред
- Page 40 and 41: 38 Программные сред
- Page 42 and 43: 40 Программные сред
- Page 44 and 45: 42 Программные сред
- Page 46 and 47: 44 Программные сред
- Page 48 and 49: 46 Программные сред
- Page 52 and 53: А. А. ДунаевПРОГРАМ
- Page 54 and 55: 52 Программные сред
- Page 56 and 57: 54 Программные сред
- Page 58 and 59: 56 Программные сред
- Page 60 and 61: 58 Программные сред
- Page 62 and 63: В. А. ЕвстигнеевМНО
- Page 64 and 65: 62 Программные сред
- Page 66 and 67: 64 Программные сред
- Page 68 and 69: 66 Программные сред
- Page 70 and 71: 68 Программные сред
- Page 72 and 73: 70 Программные сред
- Page 74 and 75: 72 Программные сред
- Page 76 and 77: 74 Программные сред
- Page 79 and 80: Евстигнеев В. А. Мно
- Page 81 and 82: Евстигнеев В. А. Мно
- Page 83 and 84: Касьянов В.Н., Касья
- Page 85 and 86: Касьянов В.Н., Касья
- Page 87 and 88: Касьянов В.Н., Касья
- Page 89 and 90: Касьянов В.Н., Касья
- Page 91 and 92: Касьянов В.Н., Касья
- Page 93 and 94: Касьянов В.Н., Касья
- Page 95 and 96: Касьянов В.Н., Касья
- Page 97 and 98: Касьянов В.Н., Касья
- Page 99 and 100: Касьянов В.Н., Касья
- Page 101 and 102:
Касьянов В.Н., Касья
- Page 103 and 104:
Касьянов В.Н., Касья
- Page 105 and 106:
Касьянов В.Н., Касья
- Page 107 and 108:
Касьянов В.Н., Касья
- Page 109 and 110:
Касьянов В.Н., Касья
- Page 111 and 112:
Касьянов В.Н., Касья
- Page 113 and 114:
Касьянов В.Н., Касья
- Page 115 and 116:
Касьянов В.Н., Касья
- Page 117 and 118:
Касьянов В.Н., Касья
- Page 119 and 120:
Касьянов В.Н., Касья
- Page 121 and 122:
Касьянов В.Н., Касья
- Page 123 and 124:
Касьянов В.Н., Касья
- Page 125 and 126:
Касьянов В.Н., Касья
- Page 127 and 128:
Касьянов В.Н., Касья
- Page 129 and 130:
Касьянов В.Н., Касья
- Page 131 and 132:
Касьянов В.Н., Касья
- Page 133 and 134:
Касьянов В.Н., Касья
- Page 135 and 136:
Касьянов В.Н., Касья
- Page 137 and 138:
Касьянов В.Н., Касья
- Page 139 and 140:
Касьянов В.Н., Касья
- Page 141 and 142:
Касьянов В.Н., Касья
- Page 143 and 144:
Касьянов В.Н., Касья
- Page 145 and 146:
Касьянов В. Н., Мирз
- Page 147 and 148:
Касьянов В. Н., Мирз
- Page 149 and 150:
Касьянов В. Н., Мирз
- Page 151 and 152:
Касьянов В. Н., Мирз
- Page 153 and 154:
Касьянов В. Н., Мирз
- Page 155 and 156:
Касьянов В. Н., Мирз
- Page 157 and 158:
Касьянов В. Н., Мирз
- Page 159 and 160:
Касьянов В. Н., Мирз
- Page 161 and 162:
Касьянов В. Н., Мирз
- Page 163 and 164:
Касьянов В. Н., Мирз
- Page 165 and 166:
Касьянов В. Н., Мирз
- Page 167 and 168:
Касьянов В. Н., Мирз
- Page 169 and 170:
Касьянов В. Н., Мирз
- Page 171 and 172:
Касьянов В. Н., Мирз
- Page 173 and 174:
Касьянов В. Н., Мирз
- Page 175 and 176:
Касьянов В. Н., Мирз
- Page 177 and 178:
Касьянов В. Н., Мирз
- Page 179 and 180:
Касьянов В. Н., Мирз
- Page 181 and 182:
Касьянов В. Н., Мирз
- Page 183 and 184:
Касьянов В. Н., Мирз
- Page 185 and 186:
Касьянов В. Н., Мирз
- Page 187 and 188:
Касьянов В. Н., Мирз
- Page 189 and 190:
Касьянов В. Н., Мирз
- Page 191 and 192:
Е. В. КасьяноваЯЗЫК
- Page 193 and 194:
Касьянова Е. В. Язык
- Page 195 and 196:
Касьянова Е. В. Язык
- Page 197 and 198:
Касьянова Е. В. Язык
- Page 199 and 200:
Касьянова Е. В. Язык
- Page 201 and 202:
Касьянова Е. В. Язык
- Page 203 and 204:
Касьянова Е. В. Язык
- Page 205 and 206:
Касьянова Е. В. Язык
- Page 207 and 208:
Касьянова Е. В. Язык
- Page 209 and 210:
Малинина Ю. В. Среда
- Page 211 and 212:
Малинина Ю. В. Среда
- Page 213 and 214:
Малинина Ю. В. Среда
- Page 215 and 216:
Малинина Ю. В. Среда
- Page 217 and 218:
Малинина Ю. В. Среда
- Page 219 and 220:
В. А. Маркин, С. А. Ма
- Page 221 and 222:
Маркин В.А., Маркина
- Page 223 and 224:
Маркин В.А., Маркина
- Page 225 and 226:
Маркин В.А., Маркина
- Page 227 and 228:
Маркин В.А., Маркина
- Page 229 and 230:
Маркин В.А., Маркина
- Page 231 and 232:
А. Л. Серебренников
- Page 233 and 234:
Серебренников А. Л.
- Page 235 and 236:
Серебренников А. Л.
- Page 237 and 238:
Серебренников А. Л.
- Page 239 and 240:
Серебренников А. Л.
- Page 241 and 242:
Серебренников А. Л.
- Page 243 and 244:
Серебренников А. Л.
- Page 245 and 246:
Серебренников А. Л.
- Page 247 and 248:
Серебренников А. Л.
- Page 249 and 250:
Серебренников А. Л.
- Page 251 and 252:
Серебренников А. Л.
- Page 253 and 254:
Серебренников А. Л.
- Page 255 and 256:
Серебренников А. Л.
- Page 257 and 258:
Е. С. Черемушкин, Т.
- Page 259 and 260:
Черемушкин Е. С. и д
- Page 261 and 262:
Черемушкин Е. С. и д
- Page 263 and 264:
Черемушкин Е. С. и д
- Page 265 and 266:
Черемушкин Е. С. и д
- Page 267 and 268:
Черемушкин Е. С. и д
- Page 269 and 270:
Черемушкин Е. С. и д
- Page 271 and 272:
Черемушкин Е. С. и д
- Page 273 and 274:
CONTENTSPreface....................
- Page 275 and 276:
рующих преобразова
- Page 277 and 278:
язык задуман как со
- Page 279 and 280:
Алгоритмы реализов