Finish removal of IRInstruction::m_type, and remove ExtendedInstruction
commitaefaa80b20fdc468db304cc7559b818c3c7bd673
authorjdelong <jdelong@fb.com>
Tue, 15 Jan 2013 20:07:14 +0000 (15 12:07 -0800)
committerSara Golemon <sgolemon@fb.com>
Thu, 17 Jan 2013 18:43:50 +0000 (17 10:43 -0800)
tree847869d0001065abc430ce06e01e84e8a4fc78a9
parent2357c864b267cf01b4b4df4e0a511a90b957b96e
Finish removal of IRInstruction::m_type, and remove ExtendedInstruction

Finishes moving value types from IRInstruction into SSATmp
(changing the other m_type uses to use m_typeParam), and allows any
instruction to have any number of srcs.  Also consolidates creation
overloads for out different IRInstruction shapes into one helper, so
we need fewer constructors/wrappers.  Adds an outputType() routine
that gives the return type of an instruction given its src types and
type parameter.  (We may want to change outputType() and
assertOperandTypes() to be table-driven---I was initially expecting
more instructions would have logic there, but they are all really
simple.)
19 files changed:
doc/ir.specification
src/runtime/vm/translator/hopt/codegen.cpp
src/runtime/vm/translator/hopt/cse.h
src/runtime/vm/translator/hopt/dce.cpp
src/runtime/vm/translator/hopt/hhbctranslator.cpp
src/runtime/vm/translator/hopt/ir.cpp
src/runtime/vm/translator/hopt/ir.h
src/runtime/vm/translator/hopt/irfactory.cpp [copied from src/runtime/vm/translator/hopt/opt.h with 53% similarity]
src/runtime/vm/translator/hopt/irfactory.h
src/runtime/vm/translator/hopt/linearscan.cpp
src/runtime/vm/translator/hopt/memelim.cpp
src/runtime/vm/translator/hopt/opt.cpp
src/runtime/vm/translator/hopt/opt.h
src/runtime/vm/translator/hopt/simplifier.cpp
src/runtime/vm/translator/hopt/simplifier.h
src/runtime/vm/translator/hopt/tracebuilder.cpp
src/runtime/vm/translator/hopt/tracebuilder.h
src/runtime/vm/translator/hopt/type.cpp [new file with mode: 0644]
src/runtime/vm/translator/translator-x64.cpp