Skip to content

Commit 953377a

Browse files
committed
[vm/ffi] Change internal loads and stores to take no type arguments
Change-Id: Iab7131b5a61282470f339df81b339ceb4fe75962 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136183 Reviewed-by: Martin Kustermann <[email protected]>
1 parent 01f4479 commit 953377a

File tree

3 files changed

+50
-88
lines changed

3 files changed

+50
-88
lines changed

runtime/vm/compiler/frontend/kernel_to_il.cc

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,13 +1211,6 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
12111211
const auto& native_rep = compiler::ffi::NativeType::FromTypedDataClassId(
12121212
ffi_type_arg_cid, zone_);
12131213

1214-
// Check Dart signature type.
1215-
const auto& receiver_type =
1216-
AbstractType::Handle(function.ParameterTypeAt(0));
1217-
const auto& type_args = TypeArguments::Handle(receiver_type.arguments());
1218-
const auto& type_arg = AbstractType::Handle(type_args.TypeAt(0));
1219-
ASSERT(ffi_type_arg_cid == type_arg.type_class_id());
1220-
12211214
ASSERT(function.NumParameters() == 2);
12221215
LocalVariable* arg_pointer = parsed_function_->RawParameterVariable(0);
12231216
LocalVariable* arg_offset = parsed_function_->RawParameterVariable(1);
@@ -1297,13 +1290,6 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
12971290
const auto& native_rep = compiler::ffi::NativeType::FromTypedDataClassId(
12981291
ffi_type_arg_cid, zone_);
12991292

1300-
// Check Dart signature type.
1301-
const auto& receiver_type =
1302-
AbstractType::Handle(function.ParameterTypeAt(0));
1303-
const auto& type_args = TypeArguments::Handle(receiver_type.arguments());
1304-
const auto& type_arg = AbstractType::Handle(type_args.TypeAt(0));
1305-
ASSERT(ffi_type_arg_cid == type_arg.type_class_id());
1306-
13071293
LocalVariable* arg_pointer = parsed_function_->RawParameterVariable(0);
13081294
LocalVariable* arg_offset = parsed_function_->RawParameterVariable(1);
13091295
LocalVariable* arg_value = parsed_function_->RawParameterVariable(2);
@@ -1319,10 +1305,6 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
13191305
const auto& pointer_type_arg =
13201306
AbstractType::Handle(pointer_type_args.TypeAt(0));
13211307

1322-
// The method _storePointer is a top level generic function, not an
1323-
// instance method on a generic class.
1324-
ASSERT(!type_arg.IsInstantiated(kFunctions));
1325-
ASSERT(type_arg.IsInstantiated(kCurrentClass));
13261308
// But we type check it as a method on a generic class at runtime.
13271309
body += LoadLocal(arg_value);
13281310
body += LoadLocal(arg_pointer);

sdk/lib/_internal/vm/lib/ffi_patch.dart

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -122,79 +122,69 @@ int _abi()
122122
// allocating a Pointer with in elementAt/offsetBy. Allocating these pointers
123123
// and GCing new spaces takes a lot of the benchmark time. The next speedup is
124124
// getting rid of these allocations by inlining these functions.
125-
int _loadInt8(Pointer<Int8> pointer, int offsetInBytes) native "Ffi_loadInt8";
125+
int _loadInt8(Pointer pointer, int offsetInBytes) native "Ffi_loadInt8";
126126

127-
int _loadInt16(Pointer<Int16> pointer, int offsetInBytes)
128-
native "Ffi_loadInt16";
127+
int _loadInt16(Pointer pointer, int offsetInBytes) native "Ffi_loadInt16";
129128

130-
int _loadInt32(Pointer<Int32> pointer, int offsetInBytes)
131-
native "Ffi_loadInt32";
129+
int _loadInt32(Pointer pointer, int offsetInBytes) native "Ffi_loadInt32";
132130

133-
int _loadInt64(Pointer<Int64> pointer, int offsetInBytes)
134-
native "Ffi_loadInt64";
131+
int _loadInt64(Pointer pointer, int offsetInBytes) native "Ffi_loadInt64";
135132

136-
int _loadUint8(Pointer<Uint8> pointer, int offsetInBytes)
137-
native "Ffi_loadUint8";
133+
int _loadUint8(Pointer pointer, int offsetInBytes) native "Ffi_loadUint8";
138134

139-
int _loadUint16(Pointer<Uint16> pointer, int offsetInBytes)
140-
native "Ffi_loadUint16";
135+
int _loadUint16(Pointer pointer, int offsetInBytes) native "Ffi_loadUint16";
141136

142-
int _loadUint32(Pointer<Uint32> pointer, int offsetInBytes)
143-
native "Ffi_loadUint32";
137+
int _loadUint32(Pointer pointer, int offsetInBytes) native "Ffi_loadUint32";
144138

145-
int _loadUint64(Pointer<Uint64> pointer, int offsetInBytes)
146-
native "Ffi_loadUint64";
139+
int _loadUint64(Pointer pointer, int offsetInBytes) native "Ffi_loadUint64";
147140

148-
int _loadIntPtr(Pointer<IntPtr> pointer, int offsetInBytes)
149-
native "Ffi_loadIntPtr";
141+
int _loadIntPtr(Pointer pointer, int offsetInBytes) native "Ffi_loadIntPtr";
150142

151-
double _loadFloat(Pointer<Float> pointer, int offsetInBytes)
152-
native "Ffi_loadFloat";
143+
double _loadFloat(Pointer pointer, int offsetInBytes) native "Ffi_loadFloat";
153144

154-
double _loadDouble(Pointer<Double> pointer, int offsetInBytes)
155-
native "Ffi_loadDouble";
145+
double _loadDouble(Pointer pointer, int offsetInBytes) native "Ffi_loadDouble";
156146

157147
Pointer<S> _loadPointer<S extends NativeType>(
158-
Pointer<Pointer<S>> pointer, int offsetInBytes) native "Ffi_loadPointer";
148+
Pointer pointer, int offsetInBytes) native "Ffi_loadPointer";
159149

160150
S _loadStruct<S extends Struct>(Pointer<S> pointer, int index)
161151
native "Ffi_loadStruct";
162152

163-
void _storeInt8(Pointer<Int8> pointer, int offsetInBytes, int value)
153+
void _storeInt8(Pointer pointer, int offsetInBytes, int value)
164154
native "Ffi_storeInt8";
165155

166-
void _storeInt16(Pointer<Int16> pointer, int offsetInBytes, int value)
156+
void _storeInt16(Pointer pointer, int offsetInBytes, int value)
167157
native "Ffi_storeInt16";
168158

169-
void _storeInt32(Pointer<Int32> pointer, int offsetInBytes, int value)
159+
void _storeInt32(Pointer pointer, int offsetInBytes, int value)
170160
native "Ffi_storeInt32";
171161

172-
void _storeInt64(Pointer<Int64> pointer, int offsetInBytes, int value)
162+
void _storeInt64(Pointer pointer, int offsetInBytes, int value)
173163
native "Ffi_storeInt64";
174164

175-
void _storeUint8(Pointer<Uint8> pointer, int offsetInBytes, int value)
165+
void _storeUint8(Pointer pointer, int offsetInBytes, int value)
176166
native "Ffi_storeUint8";
177167

178-
void _storeUint16(Pointer<Uint16> pointer, int offsetInBytes, int value)
168+
void _storeUint16(Pointer pointer, int offsetInBytes, int value)
179169
native "Ffi_storeUint16";
180170

181-
void _storeUint32(Pointer<Uint32> pointer, int offsetInBytes, int value)
171+
void _storeUint32(Pointer pointer, int offsetInBytes, int value)
182172
native "Ffi_storeUint32";
183173

184-
void _storeUint64(Pointer<Uint64> pointer, int offsetInBytes, int value)
174+
void _storeUint64(Pointer pointer, int offsetInBytes, int value)
185175
native "Ffi_storeUint64";
186176

187-
void _storeIntPtr(Pointer<IntPtr> pointer, int offsetInBytes, int value)
177+
void _storeIntPtr(Pointer pointer, int offsetInBytes, int value)
188178
native "Ffi_storeIntPtr";
189179

190-
void _storeFloat(Pointer<Float> pointer, int offsetInBytes, double value)
180+
void _storeFloat(Pointer pointer, int offsetInBytes, double value)
191181
native "Ffi_storeFloat";
192182

193-
void _storeDouble(Pointer<Double> pointer, int offsetInBytes, double value)
183+
void _storeDouble(Pointer pointer, int offsetInBytes, double value)
194184
native "Ffi_storeDouble";
195185

196-
void _storePointer<S extends NativeType>(Pointer<Pointer<S>> pointer,
197-
int offsetInBytes, Pointer<S> value) native "Ffi_storePointer";
186+
void _storePointer<S extends NativeType>(Pointer pointer, int offsetInBytes,
187+
Pointer<S> value) native "Ffi_storePointer";
198188

199189
Pointer<Int8> _elementAtInt8(Pointer<Int8> pointer, int index) =>
200190
Pointer.fromAddress(pointer.address + 1 * index);

sdk_nnbd/lib/_internal/vm/lib/ffi_patch.dart

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -120,79 +120,69 @@ int _abi()
120120
// allocating a Pointer with in elementAt/offsetBy. Allocating these pointers
121121
// and GCing new spaces takes a lot of the benchmark time. The next speedup is
122122
// getting rid of these allocations by inlining these functions.
123-
int _loadInt8(Pointer<Int8> pointer, int offsetInBytes) native "Ffi_loadInt8";
123+
int _loadInt8(Pointer pointer, int offsetInBytes) native "Ffi_loadInt8";
124124

125-
int _loadInt16(Pointer<Int16> pointer, int offsetInBytes)
126-
native "Ffi_loadInt16";
125+
int _loadInt16(Pointer pointer, int offsetInBytes) native "Ffi_loadInt16";
127126

128-
int _loadInt32(Pointer<Int32> pointer, int offsetInBytes)
129-
native "Ffi_loadInt32";
127+
int _loadInt32(Pointer pointer, int offsetInBytes) native "Ffi_loadInt32";
130128

131-
int _loadInt64(Pointer<Int64> pointer, int offsetInBytes)
132-
native "Ffi_loadInt64";
129+
int _loadInt64(Pointer pointer, int offsetInBytes) native "Ffi_loadInt64";
133130

134-
int _loadUint8(Pointer<Uint8> pointer, int offsetInBytes)
135-
native "Ffi_loadUint8";
131+
int _loadUint8(Pointer pointer, int offsetInBytes) native "Ffi_loadUint8";
136132

137-
int _loadUint16(Pointer<Uint16> pointer, int offsetInBytes)
138-
native "Ffi_loadUint16";
133+
int _loadUint16(Pointer pointer, int offsetInBytes) native "Ffi_loadUint16";
139134

140-
int _loadUint32(Pointer<Uint32> pointer, int offsetInBytes)
141-
native "Ffi_loadUint32";
135+
int _loadUint32(Pointer pointer, int offsetInBytes) native "Ffi_loadUint32";
142136

143-
int _loadUint64(Pointer<Uint64> pointer, int offsetInBytes)
144-
native "Ffi_loadUint64";
137+
int _loadUint64(Pointer pointer, int offsetInBytes) native "Ffi_loadUint64";
145138

146-
int _loadIntPtr(Pointer<IntPtr> pointer, int offsetInBytes)
147-
native "Ffi_loadIntPtr";
139+
int _loadIntPtr(Pointer pointer, int offsetInBytes) native "Ffi_loadIntPtr";
148140

149-
double _loadFloat(Pointer<Float> pointer, int offsetInBytes)
150-
native "Ffi_loadFloat";
141+
double _loadFloat(Pointer pointer, int offsetInBytes) native "Ffi_loadFloat";
151142

152-
double _loadDouble(Pointer<Double> pointer, int offsetInBytes)
153-
native "Ffi_loadDouble";
143+
double _loadDouble(Pointer pointer, int offsetInBytes) native "Ffi_loadDouble";
154144

155145
Pointer<S> _loadPointer<S extends NativeType>(
156-
Pointer<Pointer<S>> pointer, int offsetInBytes) native "Ffi_loadPointer";
146+
Pointer pointer, int offsetInBytes) native "Ffi_loadPointer";
157147

158148
S _loadStruct<S extends Struct>(Pointer<S> pointer, int index)
159149
native "Ffi_loadStruct";
160150

161-
void _storeInt8(Pointer<Int8> pointer, int offsetInBytes, int value)
151+
void _storeInt8(Pointer pointer, int offsetInBytes, int value)
162152
native "Ffi_storeInt8";
163153

164-
void _storeInt16(Pointer<Int16> pointer, int offsetInBytes, int value)
154+
void _storeInt16(Pointer pointer, int offsetInBytes, int value)
165155
native "Ffi_storeInt16";
166156

167-
void _storeInt32(Pointer<Int32> pointer, int offsetInBytes, int value)
157+
void _storeInt32(Pointer pointer, int offsetInBytes, int value)
168158
native "Ffi_storeInt32";
169159

170-
void _storeInt64(Pointer<Int64> pointer, int offsetInBytes, int value)
160+
void _storeInt64(Pointer pointer, int offsetInBytes, int value)
171161
native "Ffi_storeInt64";
172162

173-
void _storeUint8(Pointer<Uint8> pointer, int offsetInBytes, int value)
163+
void _storeUint8(Pointer pointer, int offsetInBytes, int value)
174164
native "Ffi_storeUint8";
175165

176-
void _storeUint16(Pointer<Uint16> pointer, int offsetInBytes, int value)
166+
void _storeUint16(Pointer pointer, int offsetInBytes, int value)
177167
native "Ffi_storeUint16";
178168

179-
void _storeUint32(Pointer<Uint32> pointer, int offsetInBytes, int value)
169+
void _storeUint32(Pointer pointer, int offsetInBytes, int value)
180170
native "Ffi_storeUint32";
181171

182-
void _storeUint64(Pointer<Uint64> pointer, int offsetInBytes, int value)
172+
void _storeUint64(Pointer pointer, int offsetInBytes, int value)
183173
native "Ffi_storeUint64";
184174

185-
void _storeIntPtr(Pointer<IntPtr> pointer, int offsetInBytes, int value)
175+
void _storeIntPtr(Pointer pointer, int offsetInBytes, int value)
186176
native "Ffi_storeIntPtr";
187177

188-
void _storeFloat(Pointer<Float> pointer, int offsetInBytes, double value)
178+
void _storeFloat(Pointer pointer, int offsetInBytes, double value)
189179
native "Ffi_storeFloat";
190180

191-
void _storeDouble(Pointer<Double> pointer, int offsetInBytes, double value)
181+
void _storeDouble(Pointer pointer, int offsetInBytes, double value)
192182
native "Ffi_storeDouble";
193183

194-
void _storePointer<S extends NativeType>(Pointer<Pointer<S>> pointer,
195-
int offsetInBytes, Pointer<S> value) native "Ffi_storePointer";
184+
void _storePointer<S extends NativeType>(Pointer pointer, int offsetInBytes,
185+
Pointer<S> value) native "Ffi_storePointer";
196186

197187
Pointer<Int8> _elementAtInt8(Pointer<Int8> pointer, int index) =>
198188
Pointer.fromAddress(pointer.address + 1 * index);

0 commit comments

Comments
 (0)