From ad3ce6afab30fb68cfcda40a1910b87279795c5a Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 21 Apr 2021 08:01:30 +0200 Subject: pkg/compiler: optimize array[const] representation Represent array[const[X, int8], N] as string["XX...X"]. This replaces potentially huge number of: NONFAILING(*(uint8_t*)0x2000126c = 0); NONFAILING(*(uint8_t*)0x2000126d = 0); NONFAILING(*(uint8_t*)0x2000126e = 0); with a single memcpy. In one reproducer we had 3991 such lines. Also replace memcpy's with memset's when possible. Update #1070 --- sys/linux/test/fscrypt_ext4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/linux/test/fscrypt_ext4') diff --git a/sys/linux/test/fscrypt_ext4 b/sys/linux/test/fscrypt_ext4 index 0ba0c0f20..b45395ecc 100644 --- a/sys/linux/test/fscrypt_ext4 +++ b/sys/linux/test/fscrypt_ext4 @@ -4,9 +4,9 @@ syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./mnt\x00', 0x10000, 0x1d, &(0x7f0000000200)=[{&(0x7f0000010000)="1000000040000000030000002b00000005000000010000000000000000000000002000000020000010000000000000009f09c75f0000ffff53ef0100010000009f09c75f000000000000000001000000000000000b0000008000000038000000c20201006b04000076b65be2f6da47278c750525a5b65a090000000000000000", 0x80, 0x400}, {&(0x7f0000010080)="000000000000000000000000ede2de4df49d4f87b54a3176cfd4eb4f010040000c000000000000009f09c75f0000000000000000000000000000000000000000", 0x40, 0x4e0}, {&(0x7f00000100c0)="0100000000000000000000000000000000000000040100001200000000000000", 0x20, 0x560}, {&(0x7f00000100e0)="0000000000000000000000000000000000000000010400000000000000000000", 0x20, 0x640}, {&(0x7f0000010100)="000000000000000000000000000000000000000000000000000000005178aedb0300000013000000230000002b0005000200040000000000907306c205002a9c00000000000000000000000000000000000000000000000091ecd11b00000000", 0x60, 0x7e0}, {&(0x7f0000010160)="ffff05000c000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b000000dc030a026c6f73742b666f756e6400000000000000000000000000000000000000000000", 0x440, 0xc00}, {&(0x7f00000105a0)="0000000000000000000000000000000000000000000000000c0000de46b807b70b0000000c0001022e00000002000000e80302022e2e00000000000000000000", 0x40, 0x13e0}, {&(0x7f00000105e0)="0000000000000000000000000000000000000000000000000c0000de5551aadd00000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x17e0}, {&(0x7f0000010620)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x1be0}, {&(0x7f0000010660)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x1fe0}, {&(0x7f00000106a0)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x23e0}, {&(0x7f00000106e0)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x27e0}, {&(0x7f0000010720)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x2be0}, {&(0x7f0000010760)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x2fe0}, {&(0x7f00000107a0)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x33e0}, {&(0x7f00000107e0)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x37e0}, {&(0x7f0000010820)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x3be0}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000c0000de2b607f2900000000f4030000000000000000000000000000000000000000000000000000", 0x40, 0x3fe0}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000c0000de2b607f29", 0x20, 0x43e0}, {&(0x7f00000108c0)="ff07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x400, 0x4c00}, {&(0x7f0000010cc0)="00000000000000009f09c75f9f09c75f9f09c75f000000000000000000000000", 0x20, 0x8c00}, {&(0x7f0000010ce0)="00000000000000000000000000000000000000000000000000000000c99b0000ed410000000400009f09c75f9f09c75f9f09c75f00000000000003000200000000000800000000000af3010004000000000000000000000001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c1f0000", 0xa0, 0x8c60}, {&(0x7f0000010d80)="00000000000000000000000000000000000000000000000000000000acff0000", 0x20, 0x8d60}, {&(0x7f0000010da0)="000000000000000000000000000000000000000000000000000000000ee30000", 0x20, 0x8de0}, {&(0x7f0000010dc0)="00000000000000000000000000000000000000000000000000000000ce1e0000", 0x20, 0x8e60}, {&(0x7f0000010de0)="000000000000000000000000000000000000000000000000000000007f6e000080810000003004049f09c75f9f09c75f9f09c75f000000000000010002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000005620000", 0xa0, 0x8ee0}, {&(0x7f0000010e80)="000000000000000000000000000000000000000000000000000000003b570000", 0x20, 0x8fe0}, {&(0x7f0000010ea0)="00000000000000000000000000000000000000000000000000000000fbaa0000", 0x20, 0x9060}, {&(0x7f0000010ec0)="000000000000000000000000000000000000000000000000000000004ada0000c0410000003000009f09c75f9f09c75f9f09c75f00000000000002001800000000000800000000000af301000400000000000000000000000c0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070fa0000", 0xa0, 0x90e0}], 0x0, &(0x7f0000010f60)) r0 = openat(0xffffffffffffff9c, &AUTO='mnt', 0x0, 0x0) -ioctl$FS_IOC_ADD_ENCRYPTION_KEY(r0, 0xc0506617, &AUTO={@id={0x2, 0x0, @a='\x69\xb2\xf6\xed\xee\xe7\x20\xcc\xe0\x57\x79\x37\xeb\x8a\x67\x51', [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]}, 0x40, 0x0, [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], @a='\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40'}) +ioctl$FS_IOC_ADD_ENCRYPTION_KEY(r0, 0xc0506617, &AUTO={@id={0x2, 0x0, @a='\x69\xb2\xf6\xed\xee\xe7\x20\xcc\xe0\x57\x79\x37\xeb\x8a\x67\x51', "00000000000000000000000000000000"}, 0x40, 0x0, "00000000000000000000000000000000", @a='\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40'}) mkdirat(0xffffffffffffff9c, &AUTO='mnt/encrypted_dir\x00', 0x1c0) r1 = openat(0xffffffffffffff9c, &AUTO='mnt/encrypted_dir\x00', 0x0, 0x0) -ioctl$FS_IOC_SET_ENCRYPTION_POLICY(r1, 0x800c6613, &AUTO=@v2={0x2, @aes256, 0x0, [0x0, 0x0, 0x0, 0x0], @a='\x69\xb2\xf6\xed\xee\xe7\x20\xcc\xe0\x57\x79\x37\xeb\x8a\x67\x51'}) +ioctl$FS_IOC_SET_ENCRYPTION_POLICY(r1, 0x800c6613, &AUTO=@v2={0x2, @aes256, 0x0, "00000000", @a='\x69\xb2\xf6\xed\xee\xe7\x20\xcc\xe0\x57\x79\x37\xeb\x8a\x67\x51'}) r2 = openat(0xffffffffffffff9c, &AUTO='mnt/encrypted_dir/file\x00', 0x42, 0x180) write(r2, &AUTO='foo', 0x3) -- cgit mrf-deployment