From 6fb2aa70a2681bffbac7e8de67e9598105389945 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 5 Aug 2020 10:32:52 -0700 Subject: `AnyValue` based dynamic dispatch code gen (#1477) * AnyValue based dynamic code gen * Fix aarch64 build error --- tests/compute/dynamic-dispatch-1.slang | 1 + tests/compute/dynamic-dispatch-2.slang | 3 +++ tests/compute/dynamic-dispatch-3.slang | 3 +++ tests/compute/dynamic-dispatch-4.slang | 1 + tests/compute/dynamic-dispatch-5.slang | 2 +- tests/compute/dynamic-dispatch-6.slang | 2 +- tests/compute/dynamic-dispatch-7.slang | 4 ++-- tests/compute/dynamic-generics-simple.slang | 1 + 8 files changed, 13 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/compute/dynamic-dispatch-1.slang b/tests/compute/dynamic-dispatch-1.slang index 968fb09a1..5c62167ef 100644 --- a/tests/compute/dynamic-dispatch-1.slang +++ b/tests/compute/dynamic-dispatch-1.slang @@ -3,6 +3,7 @@ // Test dynamic dispatch code gen for non-static member functions. +[anyValueSize(16)] interface IInterface { int Compute(int inVal); diff --git a/tests/compute/dynamic-dispatch-2.slang b/tests/compute/dynamic-dispatch-2.slang index 708504eeb..e5e4c3336 100644 --- a/tests/compute/dynamic-dispatch-2.slang +++ b/tests/compute/dynamic-dispatch-2.slang @@ -4,11 +4,14 @@ // Test dynamic dispatch code gen for static member functions // of associated type. +[anyValueSize(8)] interface IAssoc { int get(); static int getBase(); } + +[anyValueSize(16)] interface IInterface { associatedtype Assoc : IAssoc; diff --git a/tests/compute/dynamic-dispatch-3.slang b/tests/compute/dynamic-dispatch-3.slang index f9f68c683..1a25f3511 100644 --- a/tests/compute/dynamic-dispatch-3.slang +++ b/tests/compute/dynamic-dispatch-3.slang @@ -3,15 +3,18 @@ // Test dynamic dispatch code gen for static member functions // of associated type. +[anyValueSize(8)] interface IGetter { int getVal(); }; +[anyValueSize(8)] interface IAssoc { int get(); static int getBase(T getter); } +[anyValueSize(16)] interface IInterface { associatedtype Assoc : IAssoc; diff --git a/tests/compute/dynamic-dispatch-4.slang b/tests/compute/dynamic-dispatch-4.slang index 391ff3fd8..c29f473ff 100644 --- a/tests/compute/dynamic-dispatch-4.slang +++ b/tests/compute/dynamic-dispatch-4.slang @@ -3,6 +3,7 @@ // Test dynamic dispatch code gen for generic-typed local variables. +[anyValueSize(8)] interface IInterface { [mutating] diff --git a/tests/compute/dynamic-dispatch-5.slang b/tests/compute/dynamic-dispatch-5.slang index 6c403860b..589433af4 100644 --- a/tests/compute/dynamic-dispatch-5.slang +++ b/tests/compute/dynamic-dispatch-5.slang @@ -2,7 +2,7 @@ //DISABLE_TEST(compute):COMPARE_COMPUTE:-cuda -xslang -allow-dynamic-code // Test dynamic dispatch code gen for general `This` type. - +[anyValueSize(8)] interface IInterface { int Compute(int inVal, This other); diff --git a/tests/compute/dynamic-dispatch-6.slang b/tests/compute/dynamic-dispatch-6.slang index f9631713d..90c86b3a6 100644 --- a/tests/compute/dynamic-dispatch-6.slang +++ b/tests/compute/dynamic-dispatch-6.slang @@ -2,7 +2,7 @@ //DISABLE_TEST(compute):COMPARE_COMPUTE:-cuda -xslang -allow-dynamic-code // Test dynamic dispatch code gen for generic-typed return values. - +[anyValueSize(8)] interface IInterface { [mutating] diff --git a/tests/compute/dynamic-dispatch-7.slang b/tests/compute/dynamic-dispatch-7.slang index 62ab94e48..2c0fc863d 100644 --- a/tests/compute/dynamic-dispatch-7.slang +++ b/tests/compute/dynamic-dispatch-7.slang @@ -4,12 +4,12 @@ // Test dynamic dispatch code gen for associated-typed return values // and local variables. // TODO: test arguments of associated type. - +[anyValueSize(8)] interface IAssoc { int Compute(); } - +[anyValueSize(16)] interface IInterface { associatedtype TAssoc : IAssoc; diff --git a/tests/compute/dynamic-generics-simple.slang b/tests/compute/dynamic-generics-simple.slang index 6e2801566..117a7585e 100644 --- a/tests/compute/dynamic-generics-simple.slang +++ b/tests/compute/dynamic-generics-simple.slang @@ -3,6 +3,7 @@ // Test basic dynamic dispatch code gen +[anyValueSize(16)] interface IInterface { static int Compute(int inVal); -- cgit v1.2.3