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