Loading mlir/qir_qrt/qir-qrt.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -429,12 +429,12 @@ bool __quantum__rt__result_equal(Result *res, Result *comp) { Result *__quantum__rt__result_get_one() { return ResultOne; } Result *__quantum__rt__result_get_zero() { return ResultZero; } void __quantum__rt__string_update_reference_count(void *str, int64_t count) { void __quantum__rt__string_update_reference_count(void *str, int32_t count) { // TODO if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; } void __quantum__rt__result_update_reference_count(Result *, int64_t count) { void __quantum__rt__result_update_reference_count(Result *, int32_t count) { // TODO if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; } mlir/qir_qrt/qir-qrt.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ void __quantum__qis__u3(double theta, double phi, double lambda, Qubit *q); Result *__quantum__qis__mz(Qubit *q); // Compare results. bool __quantum__rt__result_equal(Result *res, Result *comp); void __quantum__rt__result_update_reference_count(Result *, int64_t count); void __quantum__rt__result_update_reference_count(Result *, int32_t count); // Get reference Result. Result *__quantum__rt__result_get_one(); Result *__quantum__rt__result_get_zero(); Loading Loading @@ -105,8 +105,8 @@ Array *__quantum__rt__array_slice(Array *array, int32_t dim, Array *quantum__rt__array_slice(Array *array, int32_t dim, Range range); // Ref. counting void __quantum__rt__array_update_alias_count(Array *array, int64_t increment); void __quantum__rt__array_update_reference_count(Array *aux, int64_t count); void __quantum__rt__array_update_alias_count(Array *array, int32_t increment); void __quantum__rt__array_update_reference_count(Array *aux, int32_t count); // Multi-dimension Array API int32_t __quantum__rt__array_get_dim(Array *array); Loading @@ -122,7 +122,7 @@ int8_t *__quantum__rt__array_get_element_ptr(Array *array, ...); Array *__quantum__rt__array_project(Array *array, int dim, int64_t index); // String-related API void __quantum__rt__string_update_reference_count(void *str, int64_t count); void __quantum__rt__string_update_reference_count(void *str, int32_t count); // Tuples: TuplePtr __quantum__rt__tuple_create(int64_t size); Loading mlir/qir_qrt/quantum_rt_array.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -49,13 +49,13 @@ Array *quantum__rt__array_slice(Array *array, int32_t dim, Range range) { return resultArray; } void __quantum__rt__array_update_alias_count(Array *array, int64_t increment) { void __quantum__rt__array_update_alias_count(Array *array, int32_t increment) { if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; // Looks like alias count has no functional significance, hence ignored. } void __quantum__rt__array_update_reference_count(Array *array, int64_t increment) { void __quantum__rt__array_update_reference_count(Array *array, int32_t increment) { // Spec: // Deallocates the array if the reference count becomes 0. // The behavior is undefined if the reference count becomes negative. Loading @@ -68,6 +68,9 @@ void __quantum__rt__array_update_reference_count(Array *array, int64_t increment return; } if (verbose) std::cout << "Current ref. count = " << array->ref_count() << "; increment = " << increment << "\n"; if (increment > 0) { for (int64_t i = 0; i < increment; ++i) { array->add_ref(); Loading Loading
mlir/qir_qrt/qir-qrt.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -429,12 +429,12 @@ bool __quantum__rt__result_equal(Result *res, Result *comp) { Result *__quantum__rt__result_get_one() { return ResultOne; } Result *__quantum__rt__result_get_zero() { return ResultZero; } void __quantum__rt__string_update_reference_count(void *str, int64_t count) { void __quantum__rt__string_update_reference_count(void *str, int32_t count) { // TODO if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; } void __quantum__rt__result_update_reference_count(Result *, int64_t count) { void __quantum__rt__result_update_reference_count(Result *, int32_t count) { // TODO if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; }
mlir/qir_qrt/qir-qrt.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ void __quantum__qis__u3(double theta, double phi, double lambda, Qubit *q); Result *__quantum__qis__mz(Qubit *q); // Compare results. bool __quantum__rt__result_equal(Result *res, Result *comp); void __quantum__rt__result_update_reference_count(Result *, int64_t count); void __quantum__rt__result_update_reference_count(Result *, int32_t count); // Get reference Result. Result *__quantum__rt__result_get_one(); Result *__quantum__rt__result_get_zero(); Loading Loading @@ -105,8 +105,8 @@ Array *__quantum__rt__array_slice(Array *array, int32_t dim, Array *quantum__rt__array_slice(Array *array, int32_t dim, Range range); // Ref. counting void __quantum__rt__array_update_alias_count(Array *array, int64_t increment); void __quantum__rt__array_update_reference_count(Array *aux, int64_t count); void __quantum__rt__array_update_alias_count(Array *array, int32_t increment); void __quantum__rt__array_update_reference_count(Array *aux, int32_t count); // Multi-dimension Array API int32_t __quantum__rt__array_get_dim(Array *array); Loading @@ -122,7 +122,7 @@ int8_t *__quantum__rt__array_get_element_ptr(Array *array, ...); Array *__quantum__rt__array_project(Array *array, int dim, int64_t index); // String-related API void __quantum__rt__string_update_reference_count(void *str, int64_t count); void __quantum__rt__string_update_reference_count(void *str, int32_t count); // Tuples: TuplePtr __quantum__rt__tuple_create(int64_t size); Loading
mlir/qir_qrt/quantum_rt_array.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -49,13 +49,13 @@ Array *quantum__rt__array_slice(Array *array, int32_t dim, Range range) { return resultArray; } void __quantum__rt__array_update_alias_count(Array *array, int64_t increment) { void __quantum__rt__array_update_alias_count(Array *array, int32_t increment) { if (verbose) std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n"; // Looks like alias count has no functional significance, hence ignored. } void __quantum__rt__array_update_reference_count(Array *array, int64_t increment) { void __quantum__rt__array_update_reference_count(Array *array, int32_t increment) { // Spec: // Deallocates the array if the reference count becomes 0. // The behavior is undefined if the reference count becomes negative. Loading @@ -68,6 +68,9 @@ void __quantum__rt__array_update_reference_count(Array *array, int64_t increment return; } if (verbose) std::cout << "Current ref. count = " << array->ref_count() << "; increment = " << increment << "\n"; if (increment > 0) { for (int64_t i = 0; i < increment; ++i) { array->add_ref(); Loading