Changeset 194976 in webkit


Ignore:
Timestamp:
Jan 13, 2016 12:52:46 PM (8 years ago)
Author:
Chris Dumez
Message:

Unreviewed, rolling out r194969.
https://bugs.webkit.org/show_bug.cgi?id=153075

This change broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"[JSC] Legalize Memory Offsets for ARM64 before lowering to
Air"
https://bugs.webkit.org/show_bug.cgi?id=153065
http://trac.webkit.org/changeset/194969

Patch by Commit Queue <commit-queue@webkit.org> on 2016-01-13

Location:
trunk/Source/JavaScriptCore
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r194969 r194976  
     12016-01-13  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r194969.
     4        https://bugs.webkit.org/show_bug.cgi?id=153075
     5
     6        This change broke the iOS build (Requested by ryanhaddad on
     7        #webkit).
     8
     9        Reverted changeset:
     10
     11        "[JSC] Legalize Memory Offsets for ARM64 before lowering to
     12        Air"
     13        https://bugs.webkit.org/show_bug.cgi?id=153065
     14        http://trac.webkit.org/changeset/194969
     15
    1162016-01-13  Benjamin Poulain  <bpoulain@apple.com>
    217
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r194969 r194976  
    11531153                43422A661C16267500E2EB98 /* B3ReduceDoubleToFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43422A641C16221E00E2EB98 /* B3ReduceDoubleToFloat.cpp */; };
    11541154                43422A671C16267800E2EB98 /* B3ReduceDoubleToFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = 43422A651C16221E00E2EB98 /* B3ReduceDoubleToFloat.h */; };
    1155                 436E54531C468E7400B5AF73 /* B3LegalizeMemoryOffsets.h in Headers */ = {isa = PBXBuildFile; fileRef = 436E54521C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.h */; };
    1156                 436E54541C468E7700B5AF73 /* B3LegalizeMemoryOffsets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436E54511C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.cpp */; };
    11571155                43AB26C61C1A535900D82AE6 /* B3MathExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 43AB26C51C1A52F700D82AE6 /* B3MathExtras.h */; };
    11581156                43AB26C71C1A535C00D82AE6 /* B3MathExtras.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43AB26C41C1A52F700D82AE6 /* B3MathExtras.cpp */; };
     
    32633261                43422A641C16221E00E2EB98 /* B3ReduceDoubleToFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = B3ReduceDoubleToFloat.cpp; path = b3/B3ReduceDoubleToFloat.cpp; sourceTree = "<group>"; };
    32643262                43422A651C16221E00E2EB98 /* B3ReduceDoubleToFloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3ReduceDoubleToFloat.h; path = b3/B3ReduceDoubleToFloat.h; sourceTree = "<group>"; };
    3265                 436E54511C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = B3LegalizeMemoryOffsets.cpp; path = b3/B3LegalizeMemoryOffsets.cpp; sourceTree = "<group>"; };
    3266                 436E54521C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3LegalizeMemoryOffsets.h; path = b3/B3LegalizeMemoryOffsets.h; sourceTree = "<group>"; };
    32673263                43AB26C41C1A52F700D82AE6 /* B3MathExtras.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = B3MathExtras.cpp; path = b3/B3MathExtras.cpp; sourceTree = "<group>"; };
    32683264                43AB26C51C1A52F700D82AE6 /* B3MathExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3MathExtras.h; path = b3/B3MathExtras.h; sourceTree = "<group>"; };
     
    33773373                7035587C1C418419004BD7BF /* MapPrototype.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = MapPrototype.js; sourceTree = "<group>"; };
    33783374                7035587D1C418419004BD7BF /* SetPrototype.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = SetPrototype.js; sourceTree = "<group>"; };
    3379                 7035587E1C418458004BD7BF /* MapPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapPrototype.lut.h; sourceTree = "<group>"; };
    3380                 7035587F1C418458004BD7BF /* SetPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetPrototype.lut.h; sourceTree = "<group>"; };
     3375                7035587E1C418458004BD7BF /* MapPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MapPrototype.lut.h; path = MapPrototype.lut.h; sourceTree = "<group>"; };
     3376                7035587F1C418458004BD7BF /* SetPrototype.lut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SetPrototype.lut.h; path = SetPrototype.lut.h; sourceTree = "<group>"; };
    33813377                704FD35305697E6D003DBED9 /* BooleanObject.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = BooleanObject.h; sourceTree = "<group>"; tabWidth = 8; };
    33823378                705B41A31A6E501E00716757 /* Symbol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Symbol.cpp; sourceTree = "<group>"; };
     
    47154711                                0FEC85B51BE1462F0080FF74 /* B3InsertionSet.h */,
    47164712                                0FEC85B61BE1462F0080FF74 /* B3InsertionSetInlines.h */,
    4717                                 436E54511C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.cpp */,
    4718                                 436E54521C468E5F00B5AF73 /* B3LegalizeMemoryOffsets.h */,
    47194713                                0F338E191BF286EA0013C88F /* B3LowerMacros.cpp */,
    47204714                                0F338E1A1BF286EA0013C88F /* B3LowerMacros.h */,
     
    79447938                                7E4EE7090EBB7963005934AA /* StructureChain.h in Headers */,
    79457939                                2AAAA31218BD49D100394CC8 /* StructureIDBlob.h in Headers */,
    7946                                 436E54531C468E7400B5AF73 /* B3LegalizeMemoryOffsets.h in Headers */,
    79477940                                2AF7382D18BBBF92008A5A37 /* StructureIDTable.h in Headers */,
    79487941                                0FD2C92416D01EE900C7803F /* StructureInlines.h in Headers */,
     
    86228615                                0FEC850B1BDACDAC0080FF74 /* B3Commutativity.cpp in Sources */,
    86238616                                0FEC850D1BDACDAC0080FF74 /* B3Const32Value.cpp in Sources */,
    8624                                 436E54541C468E7700B5AF73 /* B3LegalizeMemoryOffsets.cpp in Sources */,
    86258617                                0FEC850F1BDACDAC0080FF74 /* B3Const64Value.cpp in Sources */,
    86268618                                0FEC85111BDACDAC0080FF74 /* B3ConstDoubleValue.cpp in Sources */,
  • trunk/Source/JavaScriptCore/b3/B3Generate.cpp

    r194969 r194976  
    3333#include "AirInstInlines.h"
    3434#include "B3Common.h"
    35 #include "B3LegalizeMemoryOffsets.h"
    3635#include "B3LowerMacros.h"
    3736#include "B3LowerMacrosAfterOptimizations.h"
     
    8786    lowerMacrosAfterOptimizations(procedure);
    8887
    89     legalizeMemoryOffsets(procedure);
    90 
    9188    moveConstants(procedure);
    9289
  • trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp

    r194969 r194976  
    358358    Arg effectiveAddr(Value* address, int32_t offset, Arg::Width width)
    359359    {
     360        // B3 allows any memory operation to have a 32-bit offset. That's not how some architectures
     361        // work. We solve this by requiring a just-before-lowering phase that legalizes offsets.
     362        // FIXME: Implement such a legalization phase.
     363        // https://bugs.webkit.org/show_bug.cgi?id=152530
    360364        ASSERT(Arg::isValidAddrForm(offset, width));
    361365
  • trunk/Source/JavaScriptCore/b3/testb3.cpp

    r194969 r194976  
    137137}
    138138
    139 void testLoadWithOffsetImpl(int32_t offset64, int32_t offset32)
    140 {
    141     {
    142         Procedure proc;
    143         BasicBlock* root = proc.addBlock();
    144         int64_t x = -42;
    145         Value* base = root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0);
    146         root->appendNew<ControlValue>(
    147             proc, Return, Origin(),
    148             root->appendNew<MemoryValue>(
    149                 proc, Load, Int64, Origin(),
    150                 base,
    151                 offset64));
    152 
    153         char* address = reinterpret_cast<char*>(&x) - offset64;
    154         CHECK(compileAndRun<int64_t>(proc, address) == -42);
    155     }
    156     {
    157         Procedure proc;
    158         BasicBlock* root = proc.addBlock();
    159         int32_t x = -42;
    160         Value* base = root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0);
    161         root->appendNew<ControlValue>(
    162             proc, Return, Origin(),
    163             root->appendNew<MemoryValue>(
    164                 proc, Load, Int32, Origin(),
    165                 base,
    166                 offset32));
    167 
    168         char* address = reinterpret_cast<char*>(&x) - offset32;
    169         CHECK(compileAndRun<int32_t>(proc, address) == -42);
    170     }
    171 }
    172 
    173 void testLoadOffsetImm9Max()
    174 {
    175     testLoadWithOffsetImpl(255, 255);
    176 }
    177 
    178 void testLoadOffsetImm9MaxPlusOne()
    179 {
    180     testLoadWithOffsetImpl(256, 256);
    181 }
    182 
    183 void testLoadOffsetImm9MaxPlusTwo()
    184 {
    185     testLoadWithOffsetImpl(257, 257);
    186 }
    187 
    188 void testLoadOffsetImm9Min()
    189 {
    190     testLoadWithOffsetImpl(-256, -256);
    191 }
    192 
    193 void testLoadOffsetImm9MinMinusOne()
    194 {
    195     testLoadWithOffsetImpl(-257, -257);
    196 }
    197 
    198 void testLoadOffsetScaledUnsignedImm12Max()
    199 {
    200     testLoadWithOffsetImpl(32760, 16380);
    201 }
    202 
    203 void testLoadOffsetScaledUnsignedOverImm12Max()
    204 {
    205     testLoadWithOffsetImpl(32760, 32760);
    206     testLoadWithOffsetImpl(32761, 16381);
    207     testLoadWithOffsetImpl(32768, 16384);
    208 }
    209 
    210139void testArg(int argument)
    211140{
     
    93609289    RUN(test42());
    93619290    RUN(testLoad42());
    9362     RUN(testLoadOffsetImm9Max());
    9363     RUN(testLoadOffsetImm9MaxPlusOne());
    9364     RUN(testLoadOffsetImm9MaxPlusTwo());
    9365     RUN(testLoadOffsetImm9Min());
    9366     RUN(testLoadOffsetImm9MinMinusOne());
    9367     RUN(testLoadOffsetScaledUnsignedImm12Max());
    9368     RUN(testLoadOffsetScaledUnsignedOverImm12Max());
    93699291    RUN(testArg(43));
    93709292    RUN(testReturnConst64(5));
Note: See TracChangeset for help on using the changeset viewer.