Initial skeleton of Subzero.
This includes just enough code to build the high-level ICE IR and dump it back out again. There is a script szdiff.py that does a fuzzy diff of the input and output for verification. See the comment in szdiff.py for a description of the fuzziness.
Building llvm2ice requires LLVM headers, libs, and tools (e.g. FileCheck) to be present. These default to something like llvm_i686_linux_work/Release+Asserts/ based on the checked-out and built pnacl-llvm code; I'll try to figure out how to more automatically detect the build configuration.
"make check" runs the lit tests.
This CL has under 2000 lines of "interesting" Ice*.{h,cpp} code, plus 600 lines of llvm2ice.cpp driver code, and the rest is tests.
Here is the high-level mapping of source files to functionality:
IceDefs.h, IceTypes.h, IceTypes.cpp:
Commonly used types and utilities.
IceCfg.h, IceCfg.cpp:
Operations at the function level.
IceCfgNode.h, IceCfgNode.cpp:
Operations on basic blocks (nodes).
IceInst.h, IceInst.cpp:
Operations on instructions.
IceOperand.h, IceOperand.cpp:
Operations on operands, such as stack locations, physical registers, and constants.
BUG= none
R=jfb@chromium.org
Review URL: https://codereview.chromium.org/205613002
Showing
.gitignore
0 → 100644
LICENSE.TXT
0 → 100644
Makefile
0 → 100644
README.rst
0 → 100644
src/IceCfg.cpp
0 → 100644
src/IceCfg.h
0 → 100644
src/IceCfgNode.cpp
0 → 100644
src/IceCfgNode.h
0 → 100644
src/IceDefs.h
0 → 100644
src/IceGlobalContext.cpp
0 → 100644
src/IceGlobalContext.h
0 → 100644
src/IceInst.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/IceInst.def
0 → 100644
src/IceInst.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/IceOperand.cpp
0 → 100644
src/IceOperand.h
0 → 100644
src/IceTypes.cpp
0 → 100644
src/IceTypes.def
0 → 100644
src/IceTypes.h
0 → 100644
src/llvm2ice.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
szdiff.py
0 → 100755
tests_lit/.gitignore
0 → 100644
tests_lit/lit.cfg
0 → 100644
tests_lit/llvm2ice_tests/64bit.pnacl.ll
0 → 100644
This diff is collapsed.
Click to expand it.
tests_lit/llvm2ice_tests/alloc.ll
0 → 100644
tests_lit/llvm2ice_tests/arith-opt.ll
0 → 100644
tests_lit/llvm2ice_tests/arithmetic-chain.ll
0 → 100644
tests_lit/llvm2ice_tests/bitcast.ll
0 → 100644
tests_lit/llvm2ice_tests/bool-opt.ll
0 → 100644
tests_lit/llvm2ice_tests/branch-simple.ll
0 → 100644
tests_lit/llvm2ice_tests/call.ll
0 → 100644
tests_lit/llvm2ice_tests/casts.ll
0 → 100644
tests_lit/llvm2ice_tests/cmp-opt.ll
0 → 100644
tests_lit/llvm2ice_tests/convert.ll
0 → 100644
tests_lit/llvm2ice_tests/empty-func.ll
0 → 100644
tests_lit/llvm2ice_tests/fp.pnacl.ll
0 → 100644
This diff is collapsed.
Click to expand it.
tests_lit/llvm2ice_tests/fpconst.pnacl.ll
0 → 100644
This diff is collapsed.
Click to expand it.
tests_lit/llvm2ice_tests/global.ll
0 → 100644
tests_lit/llvm2ice_tests/icmp-simple.ll
0 → 100644
tests_lit/llvm2ice_tests/inttoptr.ll
0 → 100644
tests_lit/llvm2ice_tests/load.ll
0 → 100644
tests_lit/llvm2ice_tests/return-int-arg.ll
0 → 100644
tests_lit/llvm2ice_tests/select-opt.ll
0 → 100644
tests_lit/llvm2ice_tests/shift.ll
0 → 100644
tests_lit/llvm2ice_tests/simple-arith.ll
0 → 100644
tests_lit/llvm2ice_tests/simple-cond.ll
0 → 100644
tests_lit/llvm2ice_tests/simple-loop.ll
0 → 100644
tests_lit/llvm2ice_tests/store.ll
0 → 100644
tests_lit/llvm2ice_tests/switch-opt.ll
0 → 100644
tests_lit/llvm2ice_tests/unreachable.ll
0 → 100644
Please
register
or
sign in
to comment