This adds infrastructure for low-level x86-32 instructions, and the target lowering patterns. Practically no optimizations are performed. Optimizations to be introduced later include liveness analysis, dead-code elimination, global linear-scan register allocation, linear-scan based stack slot coalescing, and compare/branch fusing. One optimization that is present is simple coalescing of stack slots for variables that are only live within a single basic block. There are also some fairly comprehensive cross tests. This testing infrastructure translates bitcode using both Subzero and llc, and a testing harness calls both versions with a variety of "interesting" inputs and compares the results. Specifically, Arithmetic, Icmp, Fcmp, and Cast instructions are tested this way, across all PNaCl primitive types. BUG= R=jvoung@chromium.org Review URL: https://codereview.chromium.org/265703002
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| crosstest.py | Loading commit data... | |
| runtests.sh | Loading commit data... | |
| simple_loop.c | Loading commit data... | |
| simple_loop_main.c | Loading commit data... | |
| test_arith.cpp | Loading commit data... | |
| test_arith.def | Loading commit data... | |
| test_arith.h | Loading commit data... | |
| test_arith_frem.ll | Loading commit data... | |
| test_arith_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_fcmp.def | Loading commit data... | |
| test_fcmp.pnacl.ll | Loading commit data... | |
| test_fcmp_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_main.cpp | Loading commit data... |