Roman Lebedev
564d85e090
The maximal representable alignment in LLVM IR is 1GiB, not 512MiB
...
In LLVM IR, `AlignmentBitfieldElementT` is 5-bit wide
But that means that the maximal alignment exponent is `(1<<5)-2`,
which is `30`, not `29`. And indeed, alignment of `1073741824`
roundtrips IR serialization-deserialization.
While this doesn't seem all that important, this doubles
the maximal supported alignment from 512MiB to 1GiB,
and there's actually one noticeable use-case for that;
On X86, the huge pages can have sizes of 2MiB and 1GiB (!).
So while this doesn't add support for truly huge alignments,
which i think we can easily-ish do if wanted, i think this adds
zero-cost support for a not-trivially-dismissable case.
I don't believe we need any upgrade infrastructure,
and since we don't explicitly record the IR version,
we don't need to bump one either.
As @craig.topper speculates in D108661#2963519,
this might be an artificial limit imposed by the original implementation
of the `getAlignment()` functions.
Differential Revision: https://reviews.llvm.org/D108661
2021-08-26 12:53:39 +03:00
..
2020-08-26 15:51:30 -07:00
2019-01-04 16:39:10 +00:00
2020-11-20 14:00:46 -05:00
2021-08-05 21:55:23 -07:00
2021-01-18 17:32:15 +00:00
2021-08-26 12:53:39 +03:00
2021-08-26 12:53:39 +03:00
2021-08-26 12:53:39 +03:00
2021-08-26 12:53:39 +03:00
2020-06-26 18:10:21 -04:00
2020-06-26 18:10:21 -04:00
2020-06-26 18:10:21 -04:00
2020-06-26 18:10:21 -04:00
2020-05-16 14:53:16 -07:00
2020-05-16 14:53:16 -07:00
2019-10-10 18:31:57 +00:00
2019-01-22 18:18:02 +00:00
2021-05-25 20:16:21 -07:00
2021-06-14 14:52:29 +02:00
2020-04-06 09:59:08 -06:00
2019-03-12 21:02:54 +00:00
2020-06-05 17:22:43 -07:00
2020-05-16 14:53:16 -07:00
2021-06-28 12:53:36 -07:00
2020-07-20 10:23:09 -04:00
2020-07-20 10:23:09 -04:00
2020-07-20 10:23:09 -04:00
2020-07-20 10:23:09 -04:00
2020-07-20 10:23:09 -04:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2020-11-20 21:23:33 -05:00
2020-11-20 14:00:46 -05:00
2021-06-23 12:04:19 -07:00
2019-08-03 14:28:34 +00:00
2018-08-23 09:25:17 +00:00
2021-05-21 13:41:17 -07:00
2021-05-21 13:41:17 -07:00
2021-05-21 13:41:17 -07:00
2021-05-21 13:41:17 -07:00
2021-03-08 17:26:49 +01:00
2020-09-11 17:23:08 -07:00
2020-05-16 14:53:16 -07:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-03-12 16:32:05 -07:00
2018-11-30 19:13:38 +00:00
2018-11-30 19:13:38 +00:00
2020-05-28 13:46:41 +05:30
2018-09-21 12:03:14 +00:00
2019-04-08 19:13:55 +00:00
2020-04-20 17:29:04 -07:00
2020-03-02 16:45:48 +05:30
2019-01-08 17:52:29 +00:00
2020-04-18 12:49:31 -07:00
2019-06-17 23:39:41 +00:00
2018-10-03 18:44:53 +00:00
2018-09-20 08:53:06 +00:00
2020-12-18 13:10:57 -05:00
2020-09-25 10:26:35 -07:00
2020-05-28 13:46:41 +05:30
2021-05-21 11:52:45 +02:00
2019-08-23 17:19:21 +00:00
2020-01-29 16:46:45 +00:00
2020-06-30 13:52:38 -07:00
2020-02-13 10:16:06 -08:00
2020-04-06 09:59:08 -06:00
2021-03-29 08:55:30 -04:00
2019-08-03 14:28:34 +00:00
2021-04-21 13:10:37 -07:00
2019-08-03 14:28:34 +00:00
2019-08-03 14:28:34 +00:00
2019-08-03 14:28:34 +00:00
2018-10-03 02:37:15 +00:00
2019-01-22 18:18:02 +00:00
2019-01-22 18:18:02 +00:00
2019-01-17 10:49:01 +00:00
2019-03-22 18:27:13 +00:00
2019-05-30 18:48:23 +00:00
2019-05-30 18:48:23 +00:00
2021-06-15 14:57:48 -07:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-02-13 10:16:06 -08:00
2020-11-20 15:46:52 +00:00
2020-02-13 10:16:06 -08:00
2018-11-28 21:14:32 +00:00
2020-05-28 13:46:41 +05:30
2021-04-21 13:10:37 -07:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2021-03-29 08:55:30 -04:00
2021-04-21 13:10:37 -07:00
2021-06-25 15:18:44 -07:00
2021-06-29 14:10:29 -07:00
2021-06-25 15:18:44 -07:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2020-10-07 10:36:44 -07:00
2018-08-23 09:25:17 +00:00
2020-10-20 20:05:59 +02:00
2019-11-14 10:40:41 -08:00
2021-01-27 10:43:51 -08:00
2021-07-15 17:51:11 +02:00
2021-07-15 17:51:11 +02:00
2020-10-20 03:09:57 -04:00
2021-05-27 04:20:03 +00:00
2021-05-19 12:44:10 -07:00
2021-06-29 14:47:29 -07:00
2021-07-01 18:26:41 +02:00
2021-07-13 11:21:12 +02:00
2019-10-10 18:31:57 +00:00
2020-11-20 21:23:33 -05:00
2020-11-20 20:08:43 -05:00
2020-02-26 16:34:11 +03:00
2021-02-12 22:58:26 -08:00
2020-07-20 09:50:22 -07:00
2020-07-20 09:50:22 -07:00
2020-07-20 09:50:22 -07:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2021-06-28 23:15:32 +02:00
2020-12-14 16:34:37 -05:00