Lines Matching full:allocation

8 `memory-allocation-opt` pass can move large allocations to the heap, but by
14 the stack (like the `memory-allocation-opt` pass in reverse). This approach has
19 the heap to instead generate a stack allocation. The advantage of the second
27 For example, to rewrite the heap allocation in the `array-value-copy` pass with
28 a stack allocation using the first approach would require analysis to ensure
29 that the heap allocation is always freed before the function returns. This is
30 much more complex than never generating a heap allocation (and free) in the
35 general problem of determining heap allocation lifetimes can be simplified in
41 allocation will be kept.
71 The default options for the Memory Allocation transformation ensure that no
85 boolean variable to indicate whether a heap allocation was necessary. The
86 allocation is only freed if the variable indicates that the allocation was
89 when the allocation is performed. Beyond this, the control flow in the generated
100 for allocation on the stack.
103 The existing design is for the runtime to do the allocation and the lowering
104 code to insert `fir.freemem` to remove the allocation. It is not clear whether
138 values as arguments for the allocation and the free. It is believed that simple
153 heap array temporary allocations generated by Flang. If an allocation were to be
154 freed inside of a called function, the allocation would presumably not also be
156 the stack arrays pass would not find where the allocation was freed and so not
157 transform the allocation. It is necessary to make this assumption so that the
174 loop iteration. Use of these intrinsics is considered valid when the allocation
176 allocations between them. If this is not the case, the existing heap allocation
183 `true` meaning that the stack arrays pass must not move the allocation, `false`
184 meaning that stack arrays may move the allocation. Not specifying the attribute