[PATCH] AArch64: look up BuiltinID before calling EmitAArch64ScalarBuiltinExpr

Ana Pazos apazos at codeaurora.org
Fri Feb 14 15:35:49 PST 2014


Hi Tim,

Can you please explain again why a table is used for the scalar intrinsics and not the other intrinisics? The other intrinsics also have long case statements.

Right now the scalar intriniscs are handled differently from the other intrinsics because we vectorize the inputs to use the v1ix and v1fx types and scalarize the result.

In the future, if we change the way we handle scalar types in neon, all these intrinscs will go through the same code as the non-scalar intriniscs, again you will have long case statements.

Thanks,
Ana.

-----Original Message-----
From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-bounces at cs.uiuc.edu] On Behalf Of Tim Northover
Sent: Friday, February 14, 2014 2:17 AM
To: t.p.northover at gmail.com
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: [PATCH] AArch64: look up BuiltinID before calling EmitAArch64ScalarBuiltinExpr

  I ended up finishing the work actually making use of this table and decided there wasn't actually any benefit to splitting it into two stages, so here's the complete idea.

  I changed the code from referring directly to __builtin_neon_XYZ to just mentioning XYZ for two reasons: it allows automatic generation of the NameHint field which goes into LLVM IR on asserts builds, and it reduces the width of the table.

  There are still a handful of 80 column violations (by no more than 3 chars), but I tend to think they're better than the alternatives at this stage.

  How does the entire thing look?

  Cheers.

  Tim.

http://llvm-reviews.chandlerc.com/D2764

CHANGE SINCE LAST DIFF
  http://llvm-reviews.chandlerc.com/D2764?vs=7058&id=7118#toc

Files:
  lib/CodeGen/CGBuiltin.cpp
  test/CodeGen/aarch64-neon-ld-sideeffect.c
  utils/TableGen/NeonEmitter.cpp





More information about the cfe-commits mailing list