.. java:import:: fr.inria.tapenade.utils ILLang .. java:import:: fr.inria.tapenade.utils TapPair .. java:import:: fr.inria.tapenade.utils TapIntList .. java:import:: fr.inria.tapenade.utils ToBool .. java:import:: fr.inria.tapenade.utils Tree CStuff ====== .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class CStuff C language specific methods. Methods ------- buildAllocate ^^^^^^^^^^^^^ .. java:method:: protected static Tree buildAllocate(Tree mallocTree, int typeSize, SymbolTable symbolTable, Instruction instruction) :outertype: CStuff Builds a transformed copy of the C-syntax mallocTree, using the IL syntax op_allocate :param mallocTree: a call to malloc or calloc, possibly enclosed into a cast. :return: an op_allocate tree, containing in particular the cast type if present. buildDeallocate ^^^^^^^^^^^^^^^ .. java:method:: protected static Tree buildDeallocate(Tree callFreeTree) :outertype: CStuff buildIOCall ^^^^^^^^^^^ .. java:method:: protected static Tree buildIOCall(Tree callTree) :outertype: CStuff buildMalloc ^^^^^^^^^^^ .. java:method:: public static Tree buildMalloc(Tree allocateTree, Tree assigned) :outertype: CStuff Builds a transformed copy of the IL syntax op_allocate, as a C-syntax mallocTree. Decision of the C-style allocation (malloc, calloc, or cudaMalloc) is based the "sourcetree" annotation of the allocateTree. :param allocateTree: an op_allocate tree a call to malloc or calloc, possibly enclosed into a cast. :param assigned: the variable that receives the allocated memory. Used only when regenerating a cudaMalloc. :return: a call to malloc or calloc, possibly enclosed into a cast, or a call to cudaMalloc buildPow ^^^^^^^^ .. java:method:: protected static Tree buildPow(Tree callPowTree) :outertype: CStuff initCSymbolTable ^^^^^^^^^^^^^^^^ .. java:method:: public static void initCSymbolTable(SymbolTable symbolTable) :outertype: CStuff Inserts predefined C stuff into this initial symbolTable. isAFree ^^^^^^^ .. java:method:: protected static boolean isAFree(Tree callTree) :outertype: CStuff isAMalloc ^^^^^^^^^ .. java:method:: protected static boolean isAMalloc(Tree mallocTree) :outertype: CStuff isAPow ^^^^^^ .. java:method:: protected static boolean isAPow(SymbolTable symbolTable, Tree callTree) :outertype: CStuff isAnIoCall ^^^^^^^^^^ .. java:method:: public static boolean isAnIoCall(Tree callTree) :outertype: CStuff isaModifiedFloatFloat ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected static boolean isaModifiedFloatFloat(Tree instrOrExpr) :outertype: CStuff Tests that instrOrExpr is op_modifiedType(op_list[op_ident:"float"], float()) [llh 4Sept2017] This is only because of a bug? introduced by version 6119 that creates "float real"s in C instead of plain "float"s.