Reviewers: Kevin Millikin, danno,

Message:
The platform independent stuff and the ia32 port are ready for review. Please
take a look.

High-level overview: This CL contains the following things (which unfortunately
are closely related, so it's hard to split up):

1.) Keep track of type feedback for left/right inputs separately in BinaryOp ICs
and Compare ICs. One side-effect is that the CompareStub got folded into the
ICCompareStub.
2.) Feed this fine grained type feedback into Hydrogen, where HValues store it as observed_input_representation. Use it to infer appropriate representations
for HValues based on what we've seen in the full code.
3.) Invert the working direction of the representation inference algorithm to match what we're doing elsewhere: start with the most specific type, become more
generic as required (fixed-point iteration over the lattice None -> Int32 ->
Double -> Tagged). Since this is partly dependent on the type of HInstruction, the code has been moved from HInferRepresentation to HValue, so that subclasses
can override it.

Description:
Lattice-based representation inference, powered by left/right specific type
feedback for BinaryOps and comparisons

Please review this at https://chromiumcodereview.appspot.com/10837165/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/arm/code-stubs-arm.h
  M src/arm/code-stubs-arm.cc
  M src/arm/ic-arm.cc
  M src/arm/lithium-codegen-arm.cc
  M src/ast.h
  M src/ast.cc
  M src/code-stubs.h
  M src/code-stubs.cc
  M src/heap.cc
  M src/hydrogen-instructions.h
  M src/hydrogen-instructions.cc
  M src/hydrogen.h
  M src/hydrogen.cc
  M src/ia32/code-stubs-ia32.h
  M src/ia32/code-stubs-ia32.cc
  M src/ia32/full-codegen-ia32.cc
  M src/ia32/ic-ia32.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/ia32/lithium-ia32.h
  M src/ia32/lithium-ia32.cc
  M src/ic.h
  M src/ic.cc
  M src/mips/code-stubs-mips.h
  M src/mips/code-stubs-mips.cc
  M src/mips/ic-mips.cc
  M src/mips/lithium-codegen-mips.cc
  M src/objects-inl.h
  M src/objects.h
  M src/objects.cc
  M src/profile-generator.cc
  M src/type-info.h
  M src/type-info.cc
  M src/x64/code-stubs-x64.cc
  M src/x64/ic-x64.cc
  M src/x64/lithium-codegen-x64.cc


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to