У меня есть следующие LLVM IR программа:LLVM в не оптимизирует глобальную переменные
@test1 = global i32 3, align 4
@test2 = common global i32 0, align 4
; Function Attrs: nounwind uwtable
define i32 @main() #0 {
store i32 4, i32* @test2, align 4
%1 = load i32* @test1, align 4
ret i32 %1
}
При использовании неавтоматического (версия 3.3) для запуска с -globalopt
передать битовый код остается неизменным. Тем не менее, я ожидаю, что @test1
будет отмечен как constant и @test2
устранен, так как программа хранит только @test2
.
Должен ли я запускать опцию с некоторыми проходами анализа до или почему пропуск не выполняется, как я ожидаю?