Add Om1 lowering with no optimizations.
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
Showing
LOWERING.rst
0 → 100644
This diff is collapsed.
Click to expand it.
crosstest/crosstest.py
0 → 100755
crosstest/runtests.sh
0 → 100755
crosstest/simple_loop.c
0 → 100644
crosstest/simple_loop_main.c
0 → 100644
crosstest/test_arith.cpp
0 → 100644
crosstest/test_arith.def
0 → 100644
crosstest/test_arith.h
0 → 100644
crosstest/test_arith_frem.ll
0 → 100644
crosstest/test_arith_main.cpp
0 → 100644
crosstest/test_cast.cpp
0 → 100644
crosstest/test_cast.h
0 → 100644
crosstest/test_cast_main.cpp
0 → 100644
crosstest/test_cast_to_u1.ll
0 → 100644
crosstest/test_fcmp.def
0 → 100644
crosstest/test_fcmp.pnacl.ll
0 → 100644
crosstest/test_fcmp_main.cpp
0 → 100644
crosstest/test_icmp.cpp
0 → 100644
crosstest/test_icmp.def
0 → 100644
crosstest/test_icmp.h
0 → 100644
crosstest/test_icmp_main.cpp
0 → 100644
pydir/build-pnacl-ir.py
0 → 100755
src/IceInstX8632.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/IceInstX8632.def
0 → 100644
src/IceInstX8632.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/IceTargetLowering.cpp
0 → 100644
src/IceTargetLowering.h
0 → 100644
src/IceTargetLoweringX8632.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/IceTargetLoweringX8632.def
0 → 100644
src/IceTargetLoweringX8632.h
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
tests_lit/llvm2ice_tests/mangle.ll
0 → 100644
Please
register
or
sign in
to comment