[PATCH] D86310: [X86] Align i128 to 16 bytes in x86-64 datalayout

Trevor Gross via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 13 17:24:29 PDT 2023


tmgross added a comment.

In D86310#4499095 <https://reviews.llvm.org/D86310#4499095>, @rnk wrote:

> I still think we're overthinking this, and letting our ABI compat concerns block us from making progress. Maybe we could do something as simple as erroring out from the auto-upgrader when the module being upgraded has a struct whose layout would change as a result of the increased i128 alignment, while remaining bitcode compatible in the vast majority of cases.

This seems like a reasonable path forward, avoiding any concerns about IR mismatches while alerting users to the change. I would have to imagine there aren't all that many users that (1) don't use clang or another frontend that has to deal with this somehow, (2) use these types, (3) completely rely on autoupgrade.

Any i128 use, not just structs, _could_ be checked to catch mismatches like #50198 or the below example (more info on that in the github link I sent above), but this would affect clang users as well.

  void i128_val_in_0_perturbed_small(
    uint8_t arg0, 
    __int128_t arg1,
    __int128_t arg2, 
    __int128_t arg3,
    __int128_t arg4, 
    float arg5
  );


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86310/new/

https://reviews.llvm.org/D86310



More information about the cfe-commits mailing list