Update the interface added in r192967
authorbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Dec 2015 22:35:38 +0000 (22:35 +0000)
committerbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Dec 2015 22:35:38 +0000 (22:35 +0000)
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-02

* b3/B3CCallValue.h:
Filip prefers explicit effects.
* b3/testb3.cpp:
(JSC::B3::testCallSimplePure):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@192968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/b3/B3CCallValue.h
Source/JavaScriptCore/b3/B3Effects.h
Source/JavaScriptCore/b3/testb3.cpp

index cd49faf..7e5be9d 100644 (file)
@@ -1,5 +1,14 @@
 2015-12-02  Benjamin Poulain  <bpoulain@apple.com>
 
+        Update the interface added in r192967
+
+        * b3/B3CCallValue.h:
+        Filip prefers explicit effects.
+        * b3/testb3.cpp:
+        (JSC::B3::testCallSimplePure):
+
+2015-12-02  Benjamin Poulain  <bpoulain@apple.com>
+
         [JSC] Add a function attribute for Pure functions in B3
         https://bugs.webkit.org/show_bug.cgi?id=151741
 
index c9f5195..7f2cb8b 100644 (file)
@@ -35,7 +35,6 @@ namespace JSC { namespace B3 {
 
 class JS_EXPORT_PRIVATE CCallValue : public Value {
 public:
-    enum PureFunctionTag { PureFunction };
     static bool accepts(Opcode opcode) { return opcode == CCall; }
 
     ~CCallValue();
@@ -53,8 +52,9 @@ private:
     }
 
     template<typename... Arguments>
-    CCallValue(unsigned index, Type type, Origin origin, PureFunctionTag, Arguments... arguments)
+    CCallValue(unsigned index, Type type, Origin origin, const Effects& effects, Arguments... arguments)
         : Value(index, CheckedOpcode, CCall, type, origin, arguments...)
+        , effects(effects)
     {
     }
 };
index 772d4d3..b7e858c 100644 (file)
@@ -55,6 +55,11 @@ struct Effects {
     HeapRange writes;
     HeapRange reads;
 
+    static Effects none()
+    {
+        return Effects();
+    }
+
     static Effects forCall()
     {
         Effects result;
index 44206e1..2b8de88 100644 (file)
@@ -33,6 +33,7 @@
 #include "B3Const32Value.h"
 #include "B3ConstPtrValue.h"
 #include "B3ControlValue.h"
+#include "B3Effects.h"
 #include "B3MemoryValue.h"
 #include "B3Procedure.h"
 #include "B3StackSlotValue.h"
@@ -4731,7 +4732,7 @@ void testCallSimplePure(int a, int b)
     root->appendNew<ControlValue>(
         proc, Return, Origin(),
         root->appendNew<CCallValue>(
-            proc, Int32, Origin(), CCallValue::PureFunction,
+            proc, Int32, Origin(), Effects::none(),
             root->appendNew<ConstPtrValue>(proc, Origin(), bitwise_cast<void*>(simpleFunction)),
             root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0),
             root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1)));