Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Unified Diff: src/compiler/load-elimination.cc

Issue 2485543002: [turbofan] Also track Float64 fields in LoadElimination (on 64-bit platforms). (Closed)
Patch Set: Address redness. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/load-elimination.cc
diff --git a/src/compiler/load-elimination.cc b/src/compiler/load-elimination.cc
index 93c24a08e5cfd6af94a74e6f7e6e876ee601e3e7..8acab6e8ff473f12ca838ac7d7faf17d4201aa4f 100644
--- a/src/compiler/load-elimination.cc
+++ b/src/compiler/load-elimination.cc
@@ -897,6 +897,7 @@ int LoadElimination::FieldIndexOf(FieldAccess const& access) {
switch (rep) {
case MachineRepresentation::kNone:
case MachineRepresentation::kBit:
+ case MachineRepresentation::kSimd128:
UNREACHABLE();
break;
case MachineRepresentation::kWord32:
@@ -910,16 +911,20 @@ int LoadElimination::FieldIndexOf(FieldAccess const& access) {
case MachineRepresentation::kFloat32:
return -1; // Currently untracked.
case MachineRepresentation::kFloat64:
- case MachineRepresentation::kSimd128:
- return -1; // Currently untracked.
+ if (kDoubleSize != kPointerSize) {
+ return -1; // We currently only track pointer size fields.
+ }
+ // Fall through.
case MachineRepresentation::kTaggedSigned:
case MachineRepresentation::kTaggedPointer:
case MachineRepresentation::kTagged:
// TODO(bmeurer): Check that we never do overlapping load/stores of
- // individual parts of Float64/Simd128 values.
+ // individual parts of Float64 values.
break;
}
- DCHECK_EQ(kTaggedBase, access.base_is_tagged);
+ if (access.base_is_tagged != kTaggedBase) {
+ return -1; // We currently only track tagged objects.
+ }
return FieldIndexOf(access.offset);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698