form.
Имеется массив N из X констант, но во время исполнения один из элементов меняется на другой. В текущем виде компилятор проверяет каждый элемент хитромудрым способом и получается портянка
немного про то, с чем имею дело: https://www.jlekstrand.net/jason/projects/mesa/nir-notes/
Не понял, что есть в начале и что нужно из него получить. Есть пример компилируемого кода с тем, что нужно оптимизировать?
Имеется: Массив из 16 элементов, которые известны на этапе компиляции. Во время исполнения изменяется один из элементов. Хотелось бы: вынести все эти 16 элементов в контанты (готово) и каким-нибудь образом замещать один из них их во время исполнения (следовать алгоритму, мол, arr[n] = new_value, но упростить его до ssa_n = new_value) Пример кода на С++: https://godbolt.org/z/xbG1Kfebb Фрагмент IR шейдера, где это надо реализовать: https://pastebin.com/FHziLBe9 Может быть бред несу, но в любом случае буду благодарен за любой материал, который хотя бы немного касается этой темы
Цель этого преобразования - положить потенциально неизвестные данные куда-то так, чтобы не приходилось читать из памяти каждый раз?
А что там по else дуге в фрагменте шейдера?
Точно такой же код, только индекс это другой SSA
А этот индекс как-то связан с тем, который используется по if-дуге?
А всё-таки, связаны ли друг с другом индексы по if-дуге и по else-дуге?
По else, насколько я понимаю, нет. Там используется константный индекс
Обсуждают сегодня