1. 29 Apr, 2014 1 commit
    • Initial skeleton of Subzero. · f7c9a141
      Jim Stichnoth authored
      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
  2. 19 Mar, 2014 2 commits