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
..
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-10-29 11:45:38 +00:00
2021-06-30 16:54:13 -04:00
2019-04-05 19:28:09 +00:00
2020-02-20 14:41:39 +01:00
2020-02-20 14:41:39 +01:00
2020-02-20 14:41:39 +01:00
2020-03-19 13:57:30 +01:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-12-24 15:57:33 -08:00
2018-01-31 22:04:26 +00:00
2019-10-30 15:07:49 -07:00
2018-09-11 21:35:32 +00:00
2021-03-05 12:32:05 +00:00
2019-12-24 16:27:51 -08:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2019-04-05 19:28:09 +00:00
2020-04-16 13:46:14 +02:00
2018-01-27 23:31:09 +00:00
2018-01-27 23:31:09 +00:00
2018-01-27 23:31:09 +00:00
2017-12-18 17:38:03 +00:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2019-04-05 19:28:09 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-12-24 16:27:51 -08:00
2019-12-24 16:27:51 -08:00
2021-06-30 16:54:13 -04:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2018-08-20 20:37:57 +00:00
2019-09-11 11:16:48 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2019-10-30 15:07:49 -07:00
2020-11-20 14:00:46 -05:00
2021-06-30 16:54:13 -04:00
2019-12-24 16:27:51 -08:00
2019-12-24 16:27:51 -08:00
2019-04-05 19:28:09 +00:00
2021-06-30 16:54:13 -04:00
2018-03-13 19:53:16 +00:00
2018-01-31 22:04:26 +00:00
2020-08-27 16:36:27 +01:00
2019-10-10 18:31:57 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2021-08-10 12:46:01 +08:00
2018-01-10 00:56:48 +00:00
2019-11-05 12:57:45 -08:00
2018-08-16 23:11:05 +00:00
2020-05-28 13:53:40 -07:00
2018-01-31 22:04:26 +00:00
2018-10-01 17:50:52 +00:00
2018-04-25 18:58:06 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2019-04-05 19:28:09 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-08-26 12:53:39 +03:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2021-06-28 22:29:36 -04:00
2021-06-30 16:54:13 -04:00
2020-02-13 10:16:06 -08:00
2021-06-30 16:54:13 -04:00
2020-05-28 13:53:40 -07:00
2021-06-30 16:54:13 -04:00
2020-09-03 16:13:09 -04:00
2020-09-03 16:13:09 -04:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2019-08-14 12:20:02 +00:00
2019-12-24 16:27:51 -08:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2018-01-31 22:04:26 +00:00
2020-12-11 16:34:06 +00:00
2020-12-11 16:34:06 +00:00
2019-12-24 16:27:51 -08:00
2018-04-25 18:58:06 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-12-24 16:27:51 -08:00
2019-12-24 16:27:51 -08:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2020-02-13 10:16:06 -08:00
2019-12-24 16:27:51 -08:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2021-06-30 16:54:13 -04:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2019-04-05 19:28:09 +00:00
2021-06-30 16:54:13 -04:00
2019-12-24 16:27:51 -08:00
2019-04-05 19:28:09 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2018-01-31 22:04:26 +00:00
2017-09-19 23:34:12 +00:00
2020-12-11 16:34:06 +00:00
2019-06-17 09:13:29 +00:00
2019-04-05 19:28:09 +00:00
2018-11-07 23:33:55 +00:00