Commit b37e7861 authored by jarin's avatar jarin Committed by Commit bot

[turbofan] Replace MachineSemantic with Type in simplified lowering.

Review URL: https://codereview.chromium.org/1571263004

Cr-Commit-Position: refs/heads/master@{#33222}
parent b369fefc
This diff is collapsed.
...@@ -86,13 +86,12 @@ class RepresentationChanger final { ...@@ -86,13 +86,12 @@ class RepresentationChanger final {
// parameter is only used for sanity checking - if the changer cannot figure // parameter is only used for sanity checking - if the changer cannot figure
// out signedness for the word32->float64 conversion, then we check that the // out signedness for the word32->float64 conversion, then we check that the
// uses truncate to word32 (so they do not care about signedness). // uses truncate to word32 (so they do not care about signedness).
Node* GetRepresentationFor(Node* node, MachineType output_type, Node* GetRepresentationFor(Node* node, MachineRepresentation output_rep,
MachineRepresentation use_rep, Type* output_type, MachineRepresentation use_rep,
Truncation truncation = Truncation::None()); Truncation truncation = Truncation::None());
const Operator* Int32OperatorFor(IrOpcode::Value opcode); const Operator* Int32OperatorFor(IrOpcode::Value opcode);
const Operator* Uint32OperatorFor(IrOpcode::Value opcode); const Operator* Uint32OperatorFor(IrOpcode::Value opcode);
const Operator* Float64OperatorFor(IrOpcode::Value opcode); const Operator* Float64OperatorFor(IrOpcode::Value opcode);
MachineSemantic TypeFromUpperBound(Type* type);
MachineType TypeForBasePointer(const FieldAccess& access) { MachineType TypeForBasePointer(const FieldAccess& access) {
return access.tag() != 0 ? MachineType::AnyTagged() return access.tag() != 0 ? MachineType::AnyTagged()
...@@ -113,16 +112,22 @@ class RepresentationChanger final { ...@@ -113,16 +112,22 @@ class RepresentationChanger final {
bool testing_type_errors_; // If {true}, don't abort on a type error. bool testing_type_errors_; // If {true}, don't abort on a type error.
bool type_error_; // Set when a type error is detected. bool type_error_; // Set when a type error is detected.
Node* GetTaggedRepresentationFor(Node* node, MachineType output_type); Node* GetTaggedRepresentationFor(Node* node, MachineRepresentation output_rep,
Node* GetFloat32RepresentationFor(Node* node, MachineType output_type, Type* output_type);
Truncation truncation); Node* GetFloat32RepresentationFor(Node* node,
Node* GetFloat64RepresentationFor(Node* node, MachineType output_type, MachineRepresentation output_rep,
Truncation truncation); Type* output_type, Truncation truncation);
Node* GetWord32RepresentationFor(Node* node, MachineType output_type); Node* GetFloat64RepresentationFor(Node* node,
Node* GetBitRepresentationFor(Node* node, MachineType output_type); MachineRepresentation output_rep,
Node* GetWord64RepresentationFor(Node* node, MachineType output_type); Type* output_type, Truncation truncation);
Node* TypeError(Node* node, MachineType output_type, Node* GetWord32RepresentationFor(Node* node, MachineRepresentation output_rep,
MachineRepresentation use); Type* output_type);
Node* GetBitRepresentationFor(Node* node, MachineRepresentation output_rep,
Type* output_type);
Node* GetWord64RepresentationFor(Node* node, MachineRepresentation output_rep,
Type* output_type);
Node* TypeError(Node* node, MachineRepresentation output_rep,
Type* output_type, MachineRepresentation use);
Node* MakeTruncatedInt32Constant(double value); Node* MakeTruncatedInt32Constant(double value);
Node* InsertChangeFloat32ToFloat64(Node* node); Node* InsertChangeFloat32ToFloat64(Node* node);
Node* InsertChangeTaggedToFloat64(Node* node); Node* InsertChangeTaggedToFloat64(Node* node);
......
This diff is collapsed.
...@@ -31,9 +31,9 @@ class SimplifiedLowering final { ...@@ -31,9 +31,9 @@ class SimplifiedLowering final {
void LowerAllNodes(); void LowerAllNodes();
// TODO(turbofan): The output_type can be removed once the result of the // TODO(turbofan): The representation can be removed once the result of the
// representation analysis is stored in the node bounds. // representation analysis is stored in the node bounds.
void DoLoadBuffer(Node* node, MachineType output_type, void DoLoadBuffer(Node* node, MachineRepresentation rep,
RepresentationChanger* changer); RepresentationChanger* changer);
void DoStoreBuffer(Node* node); void DoStoreBuffer(Node* node);
void DoObjectIsNumber(Node* node); void DoObjectIsNumber(Node* node);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment