/art/runtime/lambda/ |
H A D | leaking_allocator.cc | 18 #include "lambda/leaking_allocator.h" 23 namespace lambda { namespace in namespace:art 26 // TODO: use GetAllocatorForClassLoader to allocate lambda ArtMethod data. 32 } // namespace lambda
|
H A D | art_lambda_method.h | 25 namespace lambda { namespace in namespace:art 29 // Construct an art lambda method. 30 // The target method is the one invoked by invoke-lambda. 33 // Innate lambda means that the lambda was originally created via invoke-lambda. 34 // -- Non-innate lambdas (learned lambdas) come from a regular class that was boxed to lambda. 41 // Get the target method for this lambda that would be used by the invoke-lambda dex instruction. 46 // Get the compile-time size of lambda closure [all...] |
H A D | closure_builder-inl.h | 20 #include "lambda/closure_builder.h" 24 namespace lambda { namespace in namespace:art 42 } // namespace lambda
|
H A D | art_lambda_method.cc | 17 #include "lambda/art_lambda_method.h" 20 #include "lambda/shorty_field_type.h" 23 namespace lambda { namespace in namespace:art 76 } // namespace lambda
|
H A D | box_table.h | 36 namespace lambda { namespace in namespace:art 41 * when a lambda is re-boxed. 48 using ClosureType = art::lambda::Closure*; 54 // Unboxes an object back into the lambda. Returns false and throws an exception on failure. 58 // Sweep weak references to lambda boxes. Update the addresses if the objects have been 92 // Attempt to look up the lambda in the map, or return null if it's not there yet. 143 } // namespace lambda
|
H A D | closure_builder.h | 22 #include "lambda/shorty_field_type.h" 34 namespace lambda { namespace in namespace:art 54 // Mark this lambda closure to be captured. 101 } // namespace lambda
|
H A D | leaking_allocator.h | 25 namespace lambda { namespace in namespace:art 69 } // namespace lambda
|
H A D | box_table.cc | 16 #include "lambda/box_table.h" 21 #include "lambda/closure.h" 22 #include "lambda/leaking_allocator.h" 30 namespace lambda { namespace in namespace:art 31 // Temporarily represent the lambda Closure as its raw bytes in an array. 61 new_weaks_condition_("lambda box table allowed weaks", *Locks::lambda_table_lock_) {} 91 // Functional f = () -> 5; // vF = create-lambda 92 // Object a = f; // vA = box-lambda vA 93 // Object b = f; // vB = box-lambda vB 103 // Release the lambda tabl [all...] |
H A D | closure.h | 21 #include "lambda/shorty_field_type.h" 32 namespace lambda { namespace in namespace:art 36 // Inline representation of a lambda closure. 52 // Get the target method, i.e. the method that will be dispatched into with invoke-lambda. 90 // The type at the index *must* be a lambda closure or a CHECK failure will occur. 93 // Copies a nested lambda closure at the captured variable index. 98 // Read out any non-lambda value as a copy. 160 // Compile-time known lambda information such as the type descriptor and size. 181 } // namespace lambda
|
H A D | closure_builder.cc | 16 #include "lambda/closure_builder.h" 20 #include "lambda/art_lambda_method.h" 21 #include "lambda/closure.h" 22 #include "lambda/shorty_field_type.h" 29 namespace lambda { namespace in namespace:art 40 * in the lower 2 bits of the lambda art method pointer. Whenever a closure is copied 184 << " don't support writing dynamically sized types other than lambda"; 209 } // namespace lambda
|
H A D | closure_test.cc | 18 #include "lambda/art_lambda_method.h" 19 #include "lambda/closure.h" 20 #include "lambda/closure_builder.h" 21 #include "lambda/closure_builder-inl.h" 33 using Closure = art::lambda::Closure; 62 namespace lambda { namespace in namespace:art 90 // The lambda method's captured variables types must match the ones in 'args'. 124 // The lambda method's captured variables types must match the ones in 'args'. 234 // Important: This fake lambda method needs to out-live any Closures we create with it. 355 } // namespace lambda [all...] |
H A D | shorty_field_type.h | 33 namespace lambda { namespace in namespace:art 248 // Is this a lambda? 386 // Returns true if 'T' is a lambda (i.e. it is a closure with unknown static data); 472 } // namespace lambda
|
H A D | closure.cc | 17 #include "lambda/closure.h" 20 #include "lambda/art_lambda_method.h" 27 namespace lambda { namespace in namespace:art 330 "result must be a lambda type"); 413 } // namespace lambda
|
H A D | shorty_field_type_test.cc | 17 #include "lambda/shorty_field_type.h" 29 namespace lambda { namespace in namespace:art 111 // The letters are the same as JNI letters, with kS_ being a lambda since \ is not available. 345 SCOPED_TRACE("lambda"); 353 } // namespace lambda
|
/art/test/955-lambda-smali/smali/ |
H A D | MoveResult.smali | 44 create-lambda v0, LMoveResult;->lambdaZ(J)Z 45 invoke-lambda v0, {} 76 create-lambda v0, LMoveResult;->lambdaB(J)B 77 invoke-lambda v0, {} 108 create-lambda v0, LMoveResult;->lambdaS(J)S 109 invoke-lambda v0, {} 140 create-lambda v0, LMoveResult;->lambdaI(J)I 141 invoke-lambda v0, {} 172 create-lambda v0, LMoveResult;->lambdaC(J)C 173 invoke-lambda v [all...] |
H A D | TrivialHelloWorld.smali | 28 create-lambda v0, LTrivialHelloWorld;->doHelloWorld(J)V 29 # TODO: create-lambda should not write to both v0 and v1 30 invoke-lambda v0, {} 33 create-lambda v2, doHelloWorldArgs(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 34 # TODO: create-lambda should not write to both v2 and v3 39 invoke-lambda v2, {v4, v5, v6, v7} 82 invoke-lambda v0, {} # invoking a null lambda shall raise an NPE
|
H A D | CaptureVariables.smali | 30 create-lambda v0, LCaptureVariables;->printCapturedVariable_Z(J)V 31 # TODO: create-lambda should not write to both v0 and v1 32 invoke-lambda v0, {} 37 create-lambda v0, LCaptureVariables;->printCapturedVariable_B(J)V 38 # TODO: create-lambda should not write to both v0 and v1 39 invoke-lambda v0, {} 44 create-lambda v0, LCaptureVariables;->printCapturedVariable_C(J)V 45 # TODO: create-lambda should not write to both v0 and v1 46 invoke-lambda v0, {} 51 create-lambda v [all...] |
/art/runtime/interpreter/ |
H A D | interpreter_common.h | 38 #include "lambda/art_lambda_method.h" 39 #include "lambda/box_table.h" 40 #include "lambda/closure.h" 41 #include "lambda/closure_builder-inl.h" 42 #include "lambda/leaking_allocator.h" 43 #include "lambda/shorty_field_type.h" 144 // Invokes the given lambda closure. This is part of the invocation support and is used by 151 // Validates that the art method corresponding to a lambda method target 181 const lambda::Closure& lambda_closure, 196 // Handles create-lambda instruction [all...] |
H A D | interpreter_goto_table_impl.cc | 193 std::unique_ptr<lambda::ClosureBuilder> lambda_closure_builder; 2463 lambda_closure_builder = MakeUnique<lambda::ClosureBuilder>(); 2466 // TODO: these allocations should not leak, and the lambda method should not be local. 2467 lambda::Closure* lambda_closure = 2468 reinterpret_cast<lambda::Closure*>(alloca(lambda_closure_builder->GetSize())); 2493 lambda_closure_builder = MakeUnique<lambda::ClosureBuilder>();
|
H A D | interpreter_switch_impl.cc | 118 // TODO: collapse capture-variable+create-lambda into one opcode, then we won't need 120 std::unique_ptr<lambda::ClosureBuilder> lambda_closure_builder; 2352 lambda_closure_builder = MakeUnique<lambda::ClosureBuilder>(); 2372 lambda_closure_builder = MakeUnique<lambda::ClosureBuilder>(); 2375 // TODO: these allocations should not leak, and the lambda method should not be local. 2376 lambda::Closure* lambda_closure = 2377 reinterpret_cast<lambda::Closure*>(alloca(lambda_closure_builder->GetSize()));
|
/art/test/004-JniTest/src/ |
H A D | Main.java | 43 String lambda = "λ"; 44 testInvokeLambdaMethod(() -> { System.out.println("hi-lambda: " + lambda); }); 46 testInvokeLambdaDefaultMethod(() -> { System.out.println("hi-default " + def + lambda); });
|
/art/compiler/utils/arm/ |
H A D | assembler_arm32_test.cc | 448 auto lambda = [&] (Args... args) { f(*reg, args...); }; // NOLINT [readability/braces] [4] local 449 TemplateHelper(std::function<void(Args...)>(lambda), depth + 1, without_pc, 475 auto lambda = [&] (Args... args) { f(shift, args...); }; // NOLINT [readability/braces] [4] local 476 TemplateHelper(std::function<void(Args...)>(lambda), depth, without_pc, 501 auto lambda = [&] (Args... args) { f(c, args...); }; // NOLINT [readability/braces] [4] local 502 TemplateHelper(std::function<void(Args...)>(lambda), depth, without_pc, 527 auto lambda = [&] (Args... args) { f(s, args...); }; // NOLINT [readability/braces] [4] local 528 TemplateHelper(std::function<void(Args...)>(lambda), depth, without_pc,
|
/art/runtime/ |
H A D | Android.mk | 112 lambda/art_lambda_method.cc \ 113 lambda/box_table.cc \ 114 lambda/closure.cc \ 115 lambda/closure_builder.cc \ 116 lambda/leaking_allocator.cc \
|
H A D | runtime.h | 58 namespace lambda { namespace in namespace:art 60 } // namespace lambda 562 lambda::BoxTable* GetLambdaBoxTable() const { 755 std::unique_ptr<lambda::BoxTable> lambda_box_table_;
|
/art/build/ |
H A D | Android.gtest.mk | 241 runtime/lambda/closure_test.cc \ 242 runtime/lambda/shorty_field_type_test.cc \
|