Switch to new_array_type_u64
This commit is contained in:
parent
fb32a3f52e
commit
a04934421f
7 changed files with 18 additions and 18 deletions
|
|
@ -56,18 +56,18 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gccjit"
|
name = "gccjit"
|
||||||
version = "3.2.0"
|
version = "3.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ef03c8ae23826a0755b980999a553a262c61f2f585245e647192d95bf09eee79"
|
checksum = "26b73d18b642ce16378af78f89664841d7eeafa113682ff5d14573424eb0232a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gccjit_sys",
|
"gccjit_sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gccjit_sys"
|
name = "gccjit_sys"
|
||||||
version = "1.2.0"
|
version = "1.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0ff511da413e4a5da6f09607748395ba37525e01ba7d322cbec3efc43095dd60"
|
checksum = "ee689456c013616942d5aef9a84d613cefcc3b335340d036f3650fc1a7459e15"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ default = ["master"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
object = { version = "0.37.0", default-features = false, features = ["std", "read"] }
|
object = { version = "0.37.0", default-features = false, features = ["std", "read"] }
|
||||||
tempfile = "3.20"
|
tempfile = "3.20"
|
||||||
gccjit = { version = "3.2.0", features = ["dlopen"] }
|
gccjit = { version = "3.3.0", features = ["dlopen"] }
|
||||||
#gccjit = { git = "https://github.com/rust-lang/gccjit.rs", branch = "error-dlopen", features = ["dlopen"] }
|
#gccjit = { git = "https://github.com/rust-lang/gccjit.rs", branch = "error-dlopen", features = ["dlopen"] }
|
||||||
|
|
||||||
# Local copy.
|
# Local copy.
|
||||||
|
|
|
||||||
|
|
@ -1503,7 +1503,7 @@ impl<'a, 'gcc, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'gcc, 'tcx> {
|
||||||
let element_type = vector_type.get_element_type();
|
let element_type = vector_type.get_element_type();
|
||||||
let vec_num_units = vector_type.get_num_units();
|
let vec_num_units = vector_type.get_num_units();
|
||||||
let array_type =
|
let array_type =
|
||||||
self.context.new_array_type(self.location, element_type, vec_num_units as u64);
|
self.context.new_array_type_u64(self.location, element_type, vec_num_units as u64);
|
||||||
let array = self.context.new_bitcast(self.location, vec, array_type).to_rvalue();
|
let array = self.context.new_bitcast(self.location, vec, array_type).to_rvalue();
|
||||||
self.context.new_array_access(self.location, array, idx).to_rvalue()
|
self.context.new_array_access(self.location, array, idx).to_rvalue()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ pub fn bytes_in_context<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, bytes: &[u8]) ->
|
||||||
0 => {
|
0 => {
|
||||||
let context = &cx.context;
|
let context = &cx.context;
|
||||||
let byte_type = context.new_type::<u64>();
|
let byte_type = context.new_type::<u64>();
|
||||||
let typ = context.new_array_type(None, byte_type, bytes.len() as u64 / 8);
|
let typ = context.new_array_type_u64(None, byte_type, bytes.len() as u64 / 8);
|
||||||
let elements: Vec<_> = bytes
|
let elements: Vec<_> = bytes
|
||||||
.chunks_exact(8)
|
.chunks_exact(8)
|
||||||
.map(|arr| {
|
.map(|arr| {
|
||||||
|
|
@ -76,7 +76,7 @@ pub fn bytes_in_context<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, bytes: &[u8]) ->
|
||||||
4 => {
|
4 => {
|
||||||
let context = &cx.context;
|
let context = &cx.context;
|
||||||
let byte_type = context.new_type::<u32>();
|
let byte_type = context.new_type::<u32>();
|
||||||
let typ = context.new_array_type(None, byte_type, bytes.len() as u64 / 4);
|
let typ = context.new_array_type_u64(None, byte_type, bytes.len() as u64 / 4);
|
||||||
let elements: Vec<_> = bytes
|
let elements: Vec<_> = bytes
|
||||||
.chunks_exact(4)
|
.chunks_exact(4)
|
||||||
.map(|arr| {
|
.map(|arr| {
|
||||||
|
|
@ -95,7 +95,7 @@ pub fn bytes_in_context<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, bytes: &[u8]) ->
|
||||||
_ => {
|
_ => {
|
||||||
let context = cx.context;
|
let context = cx.context;
|
||||||
let byte_type = context.new_type::<u8>();
|
let byte_type = context.new_type::<u8>();
|
||||||
let typ = context.new_array_type(None, byte_type, bytes.len() as u64);
|
let typ = context.new_array_type_u64(None, byte_type, bytes.len() as u64);
|
||||||
let elements: Vec<_> = bytes
|
let elements: Vec<_> = bytes
|
||||||
.iter()
|
.iter()
|
||||||
.map(|&byte| context.new_rvalue_from_int(byte_type, byte as i32))
|
.map(|&byte| context.new_rvalue_from_int(byte_type, byte as i32))
|
||||||
|
|
|
||||||
|
|
@ -201,8 +201,8 @@ impl<'gcc, 'tcx> CodegenCx<'gcc, 'tcx> {
|
||||||
|
|
||||||
// TODO(antoyo): re-enable the alignment when libgccjit fixed the issue in
|
// TODO(antoyo): re-enable the alignment when libgccjit fixed the issue in
|
||||||
// gcc_jit_context_new_array_constructor (it should not use reinterpret_cast).
|
// gcc_jit_context_new_array_constructor (it should not use reinterpret_cast).
|
||||||
let i128_type = context.new_array_type(None, i64_type, 2)/*.get_aligned(i128_align)*/;
|
let i128_type = context.new_array_type_u64(None, i64_type, 2)/*.get_aligned(i128_align)*/;
|
||||||
let u128_type = context.new_array_type(None, u64_type, 2)/*.get_aligned(u128_align)*/;
|
let u128_type = context.new_array_type_u64(None, u64_type, 2)/*.get_aligned(u128_align)*/;
|
||||||
(i128_type, u128_type)
|
(i128_type, u128_type)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -585,7 +585,7 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
|
||||||
"__builtin_ia32_encodekey128_u32" => {
|
"__builtin_ia32_encodekey128_u32" => {
|
||||||
let mut new_args = args.to_vec();
|
let mut new_args = args.to_vec();
|
||||||
let m128i = builder.context.new_vector_type(builder.i64_type, 2);
|
let m128i = builder.context.new_vector_type(builder.i64_type, 2);
|
||||||
let array_type = builder.context.new_array_type(None, m128i, 6);
|
let array_type = builder.context.new_array_type_u64(None, m128i, 6);
|
||||||
let result = builder.current_func().new_local(None, array_type, "result");
|
let result = builder.current_func().new_local(None, array_type, "result");
|
||||||
new_args.push(result.get_address(None));
|
new_args.push(result.get_address(None));
|
||||||
args = new_args.into();
|
args = new_args.into();
|
||||||
|
|
@ -593,7 +593,7 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
|
||||||
"__builtin_ia32_encodekey256_u32" => {
|
"__builtin_ia32_encodekey256_u32" => {
|
||||||
let mut new_args = args.to_vec();
|
let mut new_args = args.to_vec();
|
||||||
let m128i = builder.context.new_vector_type(builder.i64_type, 2);
|
let m128i = builder.context.new_vector_type(builder.i64_type, 2);
|
||||||
let array_type = builder.context.new_array_type(None, m128i, 7);
|
let array_type = builder.context.new_array_type_u64(None, m128i, 7);
|
||||||
let result = builder.current_func().new_local(None, array_type, "result");
|
let result = builder.current_func().new_local(None, array_type, "result");
|
||||||
new_args.push(result.get_address(None));
|
new_args.push(result.get_address(None));
|
||||||
args = new_args.into();
|
args = new_args.into();
|
||||||
|
|
@ -620,7 +620,7 @@ pub fn adjust_intrinsic_arguments<'a, 'b, 'gcc, 'tcx>(
|
||||||
let first_value = old_args.swap_remove(0);
|
let first_value = old_args.swap_remove(0);
|
||||||
|
|
||||||
let element_type = first_value.get_type();
|
let element_type = first_value.get_type();
|
||||||
let array_type = builder.context.new_array_type(None, element_type, 8);
|
let array_type = builder.context.new_array_type_u64(None, element_type, 8);
|
||||||
let result = builder.current_func().new_local(None, array_type, "result");
|
let result = builder.current_func().new_local(None, array_type, "result");
|
||||||
new_args.push(result.get_address(None));
|
new_args.push(result.get_address(None));
|
||||||
|
|
||||||
|
|
@ -869,7 +869,7 @@ pub fn adjust_intrinsic_return_value<'a, 'gcc, 'tcx>(
|
||||||
builder.llbb().add_assignment(None, field1, return_value);
|
builder.llbb().add_assignment(None, field1, return_value);
|
||||||
let field2 = result.access_field(None, field2);
|
let field2 = result.access_field(None, field2);
|
||||||
let field2_type = field2.to_rvalue().get_type();
|
let field2_type = field2.to_rvalue().get_type();
|
||||||
let array_type = builder.context.new_array_type(None, field2_type, 6);
|
let array_type = builder.context.new_array_type_u64(None, field2_type, 6);
|
||||||
let ptr = builder.context.new_cast(None, args[2], array_type.make_pointer());
|
let ptr = builder.context.new_cast(None, args[2], array_type.make_pointer());
|
||||||
let field2_ptr =
|
let field2_ptr =
|
||||||
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
||||||
|
|
@ -891,7 +891,7 @@ pub fn adjust_intrinsic_return_value<'a, 'gcc, 'tcx>(
|
||||||
builder.llbb().add_assignment(None, field1, return_value);
|
builder.llbb().add_assignment(None, field1, return_value);
|
||||||
let field2 = result.access_field(None, field2);
|
let field2 = result.access_field(None, field2);
|
||||||
let field2_type = field2.to_rvalue().get_type();
|
let field2_type = field2.to_rvalue().get_type();
|
||||||
let array_type = builder.context.new_array_type(None, field2_type, 7);
|
let array_type = builder.context.new_array_type_u64(None, field2_type, 7);
|
||||||
let ptr = builder.context.new_cast(None, args[3], array_type.make_pointer());
|
let ptr = builder.context.new_cast(None, args[3], array_type.make_pointer());
|
||||||
let field2_ptr =
|
let field2_ptr =
|
||||||
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
||||||
|
|
@ -937,7 +937,7 @@ pub fn adjust_intrinsic_return_value<'a, 'gcc, 'tcx>(
|
||||||
builder.llbb().add_assignment(None, field1, return_value);
|
builder.llbb().add_assignment(None, field1, return_value);
|
||||||
let field2 = result.access_field(None, field2);
|
let field2 = result.access_field(None, field2);
|
||||||
let field2_type = field2.to_rvalue().get_type();
|
let field2_type = field2.to_rvalue().get_type();
|
||||||
let array_type = builder.context.new_array_type(None, field2_type, 8);
|
let array_type = builder.context.new_array_type_u64(None, field2_type, 8);
|
||||||
let ptr = builder.context.new_cast(None, args[0], array_type.make_pointer());
|
let ptr = builder.context.new_cast(None, args[0], array_type.make_pointer());
|
||||||
let field2_ptr =
|
let field2_ptr =
|
||||||
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
builder.context.new_cast(None, field2.get_address(None), array_type.make_pointer());
|
||||||
|
|
|
||||||
|
|
@ -311,7 +311,7 @@ impl<'gcc, 'tcx> BaseTypeCodegenMethods for CodegenCx<'gcc, 'tcx> {
|
||||||
len = 0;
|
len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.context.new_array_type(None, ty, len)
|
self.context.new_array_type_u64(None, ty, len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue