AnyDSL / thorin

The Higher-Order Intermediate Representation
https://anydsl.github.io
GNU Lesser General Public License v3.0
151 stars 15 forks source link

PE skips code when logical operators are used #48

Closed richardmembarth closed 8 years ago

richardmembarth commented 8 years ago
impala -emit-llvm logic_operator.impala
W:anydsl/thorin/src/thorin/be/llvm/llvm.cpp: 742: slow: alloca and loads/stores needed for aggregate '_17' at 'logic_operator.impala:2 col 5 - 8'
W:anydsl/thorin/src/thorin/be/llvm/llvm.cpp: 742: slow: alloca and loads/stores needed for aggregate '_20' at 'logic_operator.impala:2 col 16 - 19'

if @fun() { } works, but if (@fun() || @fun()) does not partially evaluate all the code. Test case: AnyDSL/impala@fdb984f