The driver programs for vector tests use a loop to initialize vector-type values one element at a time. The PNaCl ABI requires the vector element index to be a constant, and the createConstantInsertExtractElementIndexPass() transformation creates an alloca instruction. When this alloca is inside a loop, it can (and does in the cross tests) cause a stack overflow. The workaround here is to use a noinline helper function to do the insertelement. We didn't run into this problem until now because native and sandbox cross tests build the driver in a different way that presumably avoids running the PNaCl ABI simplification passes. BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/1560933002 .
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| crosstest.cfg | Loading commit data... | |
| insertelement.h | Loading commit data... | |
| lit.cfg | Loading commit data... | |
| mem_intrin.cpp | Loading commit data... | |
| mem_intrin.def | Loading commit data... | |
| mem_intrin.h | Loading commit data... | |
| mem_intrin_main.cpp | Loading commit data... | |
| simple_loop.c | Loading commit data... | |
| simple_loop_main.c | Loading commit data... | |
| stack_hack.x8664.c | Loading commit data... | |
| test_arith.cpp | Loading commit data... | |
| test_arith.def | Loading commit data... | |
| test_arith.h | Loading commit data... | |
| test_arith_fabs.ll | Loading commit data... | |
| test_arith_frem.ll | Loading commit data... | |
| test_arith_main.cpp | Loading commit data... | |
| test_arith_sqrt.ll | Loading commit data... | |
| test_bitmanip.cpp | Loading commit data... | |
| test_bitmanip.def | Loading commit data... | |
| test_bitmanip.h | Loading commit data... | |
| test_bitmanip_intrin.ll | Loading commit data... | |
| test_bitmanip_main.cpp | Loading commit data... | |
| test_calling_conv.cpp | Loading commit data... | |
| test_calling_conv.def | Loading commit data... | |
| test_calling_conv.h | Loading commit data... | |
| test_calling_conv_main.cpp | Loading commit data... | |
| test_cast.cpp | Loading commit data... | |
| test_cast.h | Loading commit data... | |
| test_cast_main.cpp | Loading commit data... | |
| test_cast_to_u1.ll | Loading commit data... | |
| test_cast_vectors.ll | Loading commit data... | |
| test_fcmp.def | Loading commit data... | |
| test_fcmp.pnacl.ll | Loading commit data... | |
| test_fcmp_main.cpp | Loading commit data... | |
| test_global.cpp | Loading commit data... | |
| test_global.h | Loading commit data... | |
| test_global_main.cpp | Loading commit data... | |
| test_icmp.cpp | Loading commit data... | |
| test_icmp.def | Loading commit data... | |
| test_icmp.h | Loading commit data... | |
| test_icmp_i1vec.ll | Loading commit data... | |
| test_icmp_main.cpp | Loading commit data... | |
| test_select.h | Loading commit data... | |
| test_select.ll | Loading commit data... | |
| test_select_main.cpp | Loading commit data... | |
| test_stacksave.c | Loading commit data... | |
| test_stacksave.h | Loading commit data... | |
| test_stacksave_main.c | Loading commit data... | |
| test_strengthreduce.cpp | Loading commit data... | |
| test_strengthreduce.def | Loading commit data... | |
| test_strengthreduce.h | Loading commit data... | |
| test_strengthreduce_main.cpp | Loading commit data... | |
| test_sync_atomic.cpp | Loading commit data... | |
| test_sync_atomic.def | Loading commit data... | |
| test_sync_atomic.h | Loading commit data... | |
| test_sync_atomic_main.cpp | Loading commit data... | |
| test_vector_ops.def | Loading commit data... | |
| test_vector_ops.h | Loading commit data... | |
| test_vector_ops.ll | Loading commit data... | |
| test_vector_ops_main.cpp | Loading commit data... | |
| vectors.def | Loading commit data... | |
| vectors.h | Loading commit data... | |
| xdefs.h | Loading commit data... |