![]() ![]() + - entities of the new objects are collected in list Copies. The declarations are stored in Decls, the + - Param_Typ is the type of the parameter. + - For each parameter in list Params, create an object declaration of + procedure Expand_Pragma_CUDA_Execute (N : Node_Id) is + - Arg_Id : Array (1.2) of System.Address := + - Stream_Id : CUDA.Driver_Types.Stream_T := + - Grids_Id : CUDA.Vector_Types.Dim3 := Grids + - Blocks_Id : CUDA.Vector_Types.Dim3 := Blocks + - pragma CUDA_Execute (My_Proc (X, Y), Blocks, Grids, Mem, Stream) + - Pragma CUDA_Execute is expanded in the following manner: ![]() Procedure Expand_Pragma_Interrupt_Priority (N : -156,6 +158,9 package body Exp_Prag isĮxpand_Pragma_Import_Or_Interface -614,6 +619,474 package body Exp_Prag is Procedure Expand_Pragma_Inspection_Point (N : Node_Id) Procedure Expand_Pragma_Import_Or_Interface (N : Node_Id) + procedure Expand_Pragma_CUDA_Execute (N : Node_Id) Procedure Expand_Pragma_Common_Object (N : Node_Id) Procedure Expand_Pragma_Check (N : Node_Id) Procedure Expand_Pragma_Abort_Defer (N : Node_Id) With Exp_Util use -67,6 +68,7 package body Exp_Prag is ![]() Obtains the first element of the given element list or, if the list hasĭiff -git a/gcc/ada/exp_prag.adb b/gcc/ada/exp_prag.adb + - Create a new element list containing the given arguments.įunction First_Elmt (List : Elist_Id) return Elmt_Id + Elmt4 : Node_Or_Entity_Id) return Elist_Id + Elmt3 : Node_Or_Entity_Id) return Elist_Id + Elmt2 : Node_Or_Entity_Id) return Elist_Id + function New_Elmt_List (Elmt1 : Node_Or_Entity_Id) return Elist_Id list is then subsequently filled in using Append calls. a field in some other node which points to an element list where the + L : constant Elist_Id := New_Elmt_List (Elmt1, Elmt2, Elmt3) ĭiff -git a/gcc/ada/elists.ads b/gcc/ada/elists.ads + L : constant Elist_Id := New_Elmt_List (Elmt1, Elmt2) + L : constant Elist_Id := New_Elmt_List (Elmt1) + L : constant Elist_Id := New_Elmt_List + function New_Elmt_List (Elmt1 : Node_Or_Entity_Id) * rtsfind.adb: Extend Interfaces_Descendant to includeĭiff -git a/gcc/ada/elists.adb b/gcc/ada/elists.adb RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned, * rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C (Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute. (Expand_Pragma_CUDA_Execute): New function. * exp_prag.adb: Add dependency on Elists. * elists.adb (New_Elmt_List): New functions. * elists.ads (New_Elmt_List): New functions. Tested on x86_64-pc-linux-gnu, committed on trunk These functions requires putting arguments of CUDA_Execute in specificĭata structures and thus requires a declare block to hold these The hidden functions CUDA.Push_Call_Configuration andĬUDA.Pop_Call_Configuration but also to CUDA.Launch_Kernel. This commit implements expansion of the CUDA_Execute pragma.ĬUDA_Execute must result in multiple calls to the runtime API: calls to Implement expansion of CUDA_Execute pragma public inbox for help / color / mirror / Atom feed * Implement expansion of CUDA_Execute pragma 7:35 Pierre-Marie de Rodat 0 siblings, 0 replies only message in threadįrom: Pierre-Marie de Rodat 7:35 UTC ( / raw) ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |